Linux CentOS運維中,經常使用的操做和命令記錄下:html
一、DNS設置java
在Linux服務器上,當咱們ping出現這個錯誤時:ping: unknown host,很大多是系統的DNS沒有設置或者設置錯誤。在 /etc/resolv.conf 中,設置下便可:linux
# cat /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4
二、FTP客戶端配置android
當咱們須要在Linux服務器上連某個FTP,輸入ftp命名提示這個錯誤時:-bash: ftp: command not found,多是服務器上沒有安裝FTP客戶端。咱們能夠到http://mirror.centos.org/centos/5/os/i386/CentOS/ 下,找到ftp的rpm package的安裝包地址下載後執行安裝:nginx
# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/ftp-0.17-38.el5.i386.rpm
三、防火牆配置redis
Linux的防火牆相信你們都不會陌生,iptables 功能很強大,咱們暫時只列出咱們經常使用的,好比當前系統只開放了SSH的22端口,apache
[root@localhost /]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited
咱們再加一行,windows
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT,放開對8080端口的訪問;centos
-A INPUT -s 192.168.4.6 -p tcp --dport 22 -j ACCEPT,只容許192.168.4.6的機器進行SSH鏈接;瀏覽器
若是要容許或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的全部IP地址。
修改完後,須要重啓下iptables,配置才能生效:
[root@localhost /]# service iptables restart
四、nginx部署
先到官網下載.tar.gz的安裝包:http://nginx.org/en/download.html,而後解壓到你想要的目錄:
tar zxvf nginx-1.8.0.tar.gz
設置配置信息、編譯、安裝:
./configure --prefix=/home/nginx/nginx/nginx-1.8.0
make
make install
若是編輯和安裝的過程當中,沒有出現 error 之類的錯誤描述,而且 nginx的根目錄生成了sbin文件夾,那麼恭喜你,安裝成功了!
不過個人服務器環境在 make 編輯的時候,出錯了:./configure: error: the HTTP rewrite module requires the PCRE library 。
錯誤提示是缺乏PCRE庫,由於nginx的rewrite依賴於PCRE庫,因此須要在linux中編譯安裝下PCRE庫。。。
咱們能夠到 http://sourceforge.net/projects/pcre/files/pcre/ 下,選擇下載一個PCRE的版本,解壓後,老規矩,配置編譯安裝:
tar zxvf pcre-8.36.tar.gz ./configure make make install
安裝成功後,咱們再接着編譯安裝下 nginx。嗯,這下沒error提示,安裝成功了。啓動nginx:
cd /home/nginx/nginx-1.8.0/sbin
./nginx
可是又出錯了:./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
網上查了下,聽說是由於沒有給動態連接庫建立連接,執行以下命令便可:
ln -s /usr/local/lib/libpcre.so.1 /lib #32位系統 ln -s /usr/local/lib/libpcre.so.1 /lib64 #64位系統
最後,再 ./nginx 啓動。
能夠經過 ps -ef | grep nginx 查看,若是有2個nginx進程(一個master 一個worker),那麼 nginx 已經正常啓動了,打開本機的瀏覽器,訪問 http://服務器ip,親切的畫面迎面而來!
發現也能夠用yum的方法來安裝:
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
查看下yum的nginx信息:
yum info nginx
而後安裝:
yum install nginx
最後啓動nginx:
service nginx start
五、Tomcat部署
先到官網下載.tar.gz的安裝包: http://tomcat.apache.org/download-70.cgi,或者wget直接下載到服務器:
wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.64/bin/apache-tomcat-7.0.64.tar.gz
而後解壓到你想要的目錄:
tar zxvf apache-tomcat-6.0.44.tar.gz
環境變量我沒配,
到tomcat的bin目錄啓動tomcat:
./catalina.sh start
到tomcat的bin目錄關閉tomcat:
./shutdown.sh stop
查看tomcat是否安裝成功:
netstat -tnlp|grep java
六、date命令
# date -R Wed, 19 Aug 2015 14:00:40 +0800 # date +%F 2015-08-19 # date +'%F %T' 2015-08-19 14:00:58
七、強大的Find和grep
當咱們要刪除某類文件,好比2天以前的日誌文件時:
find /home/policy/log -mtime +2 -name "*.log" -exec rm -rf {} \;
-mtime:標準寫法
+2:查找2天前的文件,這裏用數字表示天數
"*.*":但願查找的文件類型,"*.log"表示查找擴展後綴名爲log的全部文件,"*"表示查找全部文件
-exec:固定寫法
rm -rf:強制刪除文件,包括目錄 (rm -rf 很是危險,執行以前必定要再三確認喲~)
{} \; :固定寫法,一對大括號+空格+ \
好比查找某個文件夾
find / -name nginx
模糊查詢
find / -name "*tomcat*"
模糊查找指定文件裏面的內容
grep -n '192.168' config.properties
查找指定文件中某天的日誌,而且含有android關鍵字(不區分大小寫)的日誌數量
grep "10/Nov/2017" host.access.log|grep -i "android" | wc -l
查詢指定文件中含有 ipad或iphone關鍵字(不區分大小寫)而且對關鍵字精確匹配的日誌
grep -iwE "ipad;|iphone;" host.access.log
查詢某類文件中含有error關鍵字的日誌內容
find -type f -name '*.log'|xargs grep 'error'
八、端口占用狀況
查看linux端口的使用狀況:netstat -tlnp
netstat -nat
查看某個進程的端口使用狀況,好比tomcat,先查看tomcat的進程號:ps -ef | grep tomcat*
(後面帶*,是爲了查看多個tomcat如tomcat6,tomcat7等)
再根據進程號查看端口號,好比上面查出來tomcat的進程id是5811:netstat -anop | grep 5811
檢測端口是否啓用:ss -tnl
九、實時監控網卡流量
單網卡:watch -n 1 "ifconfig eth0"
全部網卡:watch cat /proc/net/dev
watch more /proc/net/dev
十、服務器配置查看
系統版本:cat /etc/redhat-release、lsb_release -a
操做系統位數:getconf LONG_BIT
物理CPU個數:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
每一個物理CPU中core的個數(核數):cat /proc/cpuinfo| grep "cpu cores"| uniq
十一、iconv批量轉換windows文件成linux文件
windwos文件中的文件上傳到linux後因爲編碼不一樣,可能會致使亂碼。
先查看文件編碼:
file filename
再遞歸轉換(含子文件夾):
find test -type d -exec mkdir -p /home/maoniu/{} \;
find test -type f -exec iconv -f GBK -t UTF-8 {} -o /home/maoniu/{} \;
(將test目錄下的文件由GBK編碼轉換爲UTF-8編碼,目錄結構不變,轉碼後的文件保存在/home/maoniu/test目錄下)
注意:若是原來就是utf-8編碼,使用iconv -f GBK -t UTF-8命令轉換後,會出現亂碼,或截斷等各類問題;必定要保證原文件是否是utf-8編碼;
使用以下命令把文件編碼先查出來:find test-type f -exec file -i {} \; > /tmp/test
查詢是否存在已是utf-8編碼的文件:grep "charset=utf-8" /tmp/test
十二、使用nc作TCP和UDP端口掃描
TCP掃描
nc -nvz 192.168.1.105 1-65535 進行掃描,
-z : 探測到端口後就退出,不進行鏈接。
UDP掃描
nc -nvzu 192.168.1.105 1-1024 進行掃描,
-u : UDP
1三、windows與linux經過sftp上傳下載
按下ALT+P 開啓新的會話,進行sftp操做。可輸入: help命令,顯示全部支持的命令
pwd: 查詢linux主機所在目錄(也就是遠程主機目錄)
lpwd: 查詢本地目錄(指windows上傳文件的目錄:咱們能夠經過查看"選項"下拉框中的"會話選項")
ls: 查詢鏈接到當前linux主機所在目錄有哪些文件
lls: 查詢當前本地上傳目錄有哪些文件
lcd: 改變本地上傳目錄的路徑
cd: 改變遠程上傳目錄
get: 將遠程目錄中文件下載到本地目錄
put: 將本地目錄中文件上傳到遠程主機(linux)
quit: 斷開FTP鏈接
1四、CP
例 複製源目錄 爲 dir1 ,目標目錄爲dir2
若是dir2目錄不存在:cp -r dir1 dir2
若是dir2目錄已存在:cp -r dir1/. dir2
若不想看到提示直接覆蓋使用 -rf 。若是仍是提示是否覆蓋,能夠在CP命令前面加一個斜槓\ ,即: \cp -rf dir1/. dir2
1四、查看進程啓動和執行時間
ps -eo pid,lstart,etime,cmd | grep redis