文章標簽 ‘linux’

linux find命令小記

2012年2月3日 沒有評論

在一個備份腳步中執行了刪除7天前的舊備份文件的命令,備份文件存放在/home/backups/files/下,命令如下:

find /home/backups/files/ -mtime +6 -exec rm -rf {} \;

開始時候運行正常,一段時間后發現沒有備份了,查看下來,發現/home/backups/files/文件都不存在了。原來是因為find寫法有問題,find /home/backups/files/ -mtime +6 出來的結果會包含/home/backups/files/目錄(當files目錄的創建時間超過7天),是自己想當然的以為在目錄后面加了“/”就只查找該目錄下的文件,測試下來,find /home/backups/files/ -mtime +6和find /home/backups/files -mtime +6的結果一致。知道問題所在了,解決問題就好辦了,只需要在后面加個星號(*)通配符就行了,如下:

find /home/backups/files/* -mtime +6 -exec rm -rf {} \;
分類: Linux 標簽: ,

>/dev/null 2>&1含義

2011年12月20日 沒有評論

執行linux命令或腳本時,如果不想打印出錯誤信息,可以使用

command 2>/dev/null

注意:2>/dev/null中間不要有空格

同樣,如果不想看到標準的輸出,則可以這樣

command 1>/dev/null

要是不想看到任何輸出,則:

command >/dev/null 2>&1

linux有3個默認的I/O

  1. 0 是標準輸入,一般是鍵盤
  2. 1 是標準輸出,一般是屏幕了
  3. 2 是標準錯誤,有時候屏幕上可以看到,但是重定向的文件中看不到的就是它了

現在知道上述的1、2的含義了,所以第一條命令就是把命令的錯誤信息重定向到一個空設備中,即丟棄此信息,第二條就是把標準輸出重定向到空設備中,最后一條是把標準輸出(默認)重定向到空設備,同時把錯誤信息定向到標準輸出中,當然可以這么寫

command 1>/dev/null 2>&1
分類: Linux 標簽: ,

netstat命令的常見用法

2011年11月17日 沒有評論
  • 查看系統服務監聽狀況
netstat -tunlp
  • 查看連接某服務端口最多的的IP地址
netstat -nat | grep "10.150.185.178:80" | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -20
  • TCP各種狀態列表
netstat -nat | awk '{print $6}' | sort | uniq -c | sort -rn
或
netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

另外分析access.log獲得訪問前10位的ip地址可以用如下命令:

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10
分類: Linux 標簽: ,

解決ssh空閑一段時間后自動斷開的方法

2011年11月3日 沒有評論

用客戶端工具,例如securecrt連接linux服務器,有的會出現過一段時間沒有任何操作,客戶端與服務器就斷開了連接。造成這個的原因,主要是因為客戶端與服務器之間存在路由器,防火墻以及為了本身的安全性,在超過特定的時間后就會把空閑連接斷開。或者是服務器端設置了斷開空閑連接。那么解決的方法有兩種,一是從服務器著手,一是在客戶端工具上下手。

  • 服務器端

修改/etc/ssh/sshd_config配置文件 ClientAliveInterval 300(默認為0),參數的是意思是每5分鐘,服務器向客戶端發一個消息,用于保持連接,使用service sshd reload 讓其修改后生效。如果發現還是有問題,可以試著把300設置小一點,例如60。

  • 客戶端工具

securecrt的設置方法:會話選項 –> 終端 –> 反空閑–>選中發送協議 NO-OP(p) 每 60 秒

putty的設置方法:putty -> Connection -> Seconds between keepalives ( 0 to turn off ), 默認為0, 改為300

分類: Linux 標簽: , ,

rsync同步時出現rsync: failed to set times on “xxxx”: Operation not permitted

2011年10月25日 沒有評論

出現rsync: failed to set times on “xxxx”: Operation not permitted的原因大致是對文件夾(或文件)xxxx沒有操作權限。如果執行同步的用戶是root,是不會有這樣的問題,但是rsync也可以不使用root用戶來進行同步,不使用root用戶的情況下,即使使用了-o,-g,同步到目的文件夾的文件用戶和組都變成了同步使用的用戶,但是用-p后文件權限可以保留。當目的文件夾(或文件)xxxx事后做過修改使owner不是rsync使用的用戶,即使xxxx的權限是777,也會出現上述錯誤。

分類: Linux 標簽: , ,

linux中配置的crontab不執行

2011年9月26日 1 條評論

在linux下提供的crontab可以很輕松的幫我們完成一些需要定時處理的任務。在某些系統下,明明通過terminal可以執行的動作,加入到crontab后卻沒有執行,檢查配置也沒有任何問題。最終發現是由于cron的運行環境(包括path等)可能不是和登陸的當前用戶一致造成的,所以在配置crontab時,建議命令用完整路徑。

分類: Linux 標簽: ,

linux下刪除文件名亂碼文件

2011年9月22日 沒有評論

linux下通過rm命令來刪除文件,但是如果要刪除文件名亂碼的文件,就不能直接使用rm命令了,因為壓根就無法輸出文件名來。不過借助find命令可以實現對其刪除。在linux下對于每個文件都一個對應的不變的inode號,使用 ls -li 可以查看到文件的inode號,同時find可以根據inode號來查找,另外find命令中可以執行其他的命令。刪除的步驟如下:

  1. 通過ls -li 獲取要刪除亂碼文件名文件的inode號,比如得到的是 123456
  2. 執行刪除
find ./ -inum 123456 -exec rm -rf {} \;

注意:“{}”后要空一格再加上“\;”。

分類: Linux 標簽: , , ,

find命令錯誤提示路徑必須在表達式之前

2011年9月22日 沒有評論

在某些版本的linux下,通過find查找當前目錄下所有后綴名jpg的文件,命令為

find ./ -iname *.jpg

會出現“find: 路徑必須在表達式之前”的錯誤提示。解決的方法有兩種

  1. 使用轉義符把*轉義,即? \*.jpg
  2. 用引號引起來 ,即 “*.jpg”

注意:如果需要把find 的結果提交給while,例如:

`echo find ./ -iname "\*.jpg"` | while read f
do
   #do something
done

則既需要轉義符,也需要引號

分類: Linux 標簽: ,

linux下history命令配置

2011年9月5日 沒有評論

linux中每次執行的命令都會紀錄,一般默認最近紀錄1000條。可以通過history來查看先前輸入的命令,有時候重復執行某條命令多次,這樣對查找先前執行的命令造成不方便,可以在/et/bashrc中進行如下設置。

去除連續重復的命令

export HISTCONTROL=ignoreboth

消除整個命令歷史中的重復命令

export HISTCONTROL=erasedups

如果需要記錄更多命令歷史記錄,例如2000條

export HISTSIZE=2000

ubuntu下iptables 執行清除命令 iptables -F 要非常小心

2011年9月5日 沒有評論

使用 /sbin/iptables -F 要小心,搞不好,你就馬上同服務器斷開連接了,以下是來自 http://wiki.ubuntu.org.cn/IptablesHowTo 上的說明
可以通過/sbin/iptables -F清除所有規則來暫時停止防火墻: (警告:這只適合在沒有配置防火墻的環境中,如果已經配置過默認規則為deny的環境,此步驟將使系統的所有網絡訪問中斷)
如果想清空的話,先執行

/sbin/iptables -P INPUT ACCEPT

然后執行

/sbin/iptables -F

通過iptables -L 看到如下信息
Chain INPUT (policy DROP 0 packets, 0 bytes) (注意 是DROP)
執行/sbin/iptables -F就肯定立馬斷開連接
當執行了/sbin/iptables -P INPUT ACCEPT,再次通過iptables -L看信息的話就是
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
所以現在是可以安全使用/sbin/iptables -F了

分類: Linux 標簽: , , ,

無覓相關文章插件,快速提升流量

30选5怎么中奖