亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

淺談Linux下通過find命令進行rm文件刪除的小技巧

2024-09-05 23:03:07
字體:
來源:轉載
供稿:網友

我們經常會通過find命令進行批量操作,如:批量刪除舊文件、批量修改、基于時間的文件統計、基于文件大小的文件統計等,在這些操作當中,由于rm刪除操作會導致目錄結構變化,如果要通過find結合rm的操作寫成腳本,就會遇到一些麻煩,本文通過一個例子為大家進行介紹。

系統環境:

SUSE Linux Enterprise Server 11 或

Red Hat Enterprise Linux

問題癥狀:

客戶現場有一個自動化的腳本,有以下的find語句,每天運行以刪除某個目錄下7天以前的文件或目錄,這些目錄都是按時間順序生成PostgreSQL數據庫的WAL日志及其錯誤日志pg_log:

/bin/find /enterprisedb_backup/postgresql/ -mtime +7 -exec /bin/rm -rf '{}' /;

運行過程中,間歇性地出現以下錯誤:

[root@edb ~]# /bin/find /enterprisedb_backup/postgresql/ -mtime +7 -exec /bin/rm -rf {} /;/bin/find: `/enterprisedb_backup/postgresql/network-scripts': No such file or directory[root@edb ~]# echo $?1

顯然,以上命令返回了錯誤的結果,但客戶反映說,以上腳本運行后目錄下7天前的數據的確備刪除了。

問題分析:

進行故障重現,在另一臺服務器中通過模擬數據單獨運行find命令分析此問題,測試過程如下:

1.模擬數據

[root@edbnode1 ~]# dateWed Jun 18 23:08:18 CST 2014[root@edbnode1 ~]# cp -rcp /etc/sysconfig/network-scripts/ /enterprisedb_backup/postgresql/[root@edbnode1 ~]# cp -rcp /etc/init.d/iptables /enterprisedb_backup/postgresql/## 以上通過 cp -rcp 命令使得拷貝到目標目錄的數據保持包括:建立時間、用戶權根等信息,以模擬出一個舊文件及一個舊目錄[root@edbnode1 ~]# ll /enterprisedb_backup/postgresql/total 16-rwxr-xr-x. 1 root root 9409 Oct 31 2012 iptablesdrwxr-xr-x. 2 root root 4096 Jun 18 2013 network-scripts## 以上可以看到iptables文件是2012年建立的,network-scripts是2013年建立的,都遠遠超過了7天[root@edbnode1 ~]# ll /enterprisedb_backup/postgresql/*-rwxr-xr-x. 1 root root 9409 Oct 31 2012 /enterprisedb_backup/postgresql/iptables/enterprisedb_backup/postgresql/network-scripts:total 212-rw-r--r--. 1 root root  159 Jun 18 2013 ifcfg-eth0-rw-r--r--. 1 root root  203 Jun 18 2013 ifcfg-eth1-rw-r--r--. 1 root root  203 Jun 18 2013 ifcfg-eth2-rw-r--r--. 1 root root  254 Jan 9 2013 ifcfg-lolrwxrwxrwx. 1 root root  20 Jun 18 2013 ifdown -> ../../../sbin/ifdown-rwxr-xr-x. 1 root root  627 Jan 9 2013 ifdown-bnep-rwxr-xr-x. 1 root root 5397 Jan 9 2013 ifdown-eth-rwxr-xr-x. 1 root root  781 Jan 9 2013 ifdown-ippp-rwxr-xr-x. 1 root root 4168 Jan 9 2013 ifdown-ipv6lrwxrwxrwx. 1 root root  11 Jun 18 2013 ifdown-isdn -> ifdown-ippp-rwxr-xr-x. 1 root root 1481 Jan 9 2013 ifdown-post-rwxr-xr-x. 1 root root 1064 Jan 9 2013 ifdown-ppp-rwxr-xr-x. 1 root root  835 Jan 9 2013 ifdown-routes-rwxr-xr-x. 1 root root 1370 Jan 9 2013 ifdown-sit-rwxr-xr-x. 1 root root 1434 Jan 9 2013 ifdown-tunnellrwxrwxrwx. 1 root root  18 Jun 18 2013 ifup -> ../../../sbin/ifup-rwxr-xr-x. 1 root root 12365 Jan 9 2013 ifup-aliases-rwxr-xr-x. 1 root root  859 Jan 9 2013 ifup-bnep-rwxr-xr-x. 1 root root 10157 Jan 9 2013 ifup-eth-rwxr-xr-x. 1 root root 11971 Jan 9 2013 ifup-ippp-rwxr-xr-x. 1 root root 10401 Jan 9 2013 ifup-ipv6lrwxrwxrwx. 1 root root   9 Jun 18 2013 ifup-isdn -> ifup-ippp-rwxr-xr-x. 1 root root  727 Jan 9 2013 ifup-plip-rwxr-xr-x. 1 root root  954 Jan 9 2013 ifup-plusb-rwxr-xr-x. 1 root root 2364 Jan 9 2013 ifup-post-rwxr-xr-x. 1 root root 4154 Jan 9 2013 ifup-ppp-rwxr-xr-x. 1 root root 1925 Jan 9 2013 ifup-routes-rwxr-xr-x. 1 root root 3499 Jan 9 2013 ifup-sit-rwxr-xr-x. 1 root root 2488 Jan 9 2013 ifup-tunnel-rwxr-xr-x. 1 root root 3770 Jan 9 2013 ifup-wireless-rwxr-xr-x. 1 root root 4623 Jan 9 2013 init.ipv6-global-rwxr-xr-x. 1 root root 1125 Jan 9 2013 net.hotplug-rw-r--r--. 1 root root 13079 Jan 9 2013 network-functions-rw-r--r--. 1 root root 29853 Jan 9 2013 network-functions-ipv6## 以上可以看到network-script不是一個空的目錄,當中還有文件,而且文件也都已經是7天前建立的了 

2.測試單獨模擬執行腳本中的find + rm指令

[root@edbnode1 ~]# /bin/find /enterprisedb_backup/postgresql/ -mtime +7 -exec /bin/rm -rf {} /;/bin/find: `/enterprisedb_backup/postgresql/network-scripts': No such file or directory[root@edbnode1 ~]# echo $?1[root@edbnode1 ~]# ls /enterprisedb_backup/postgresql/[root@edbnode1 ~]#

可以看到find操作的確返回了錯誤的結果,但查看數據備份目錄發現,iptables文件及network-scripts目錄已經正確刪除

3.由于數據已經正確刪除,因此我們開始懷疑是由network-scripts目錄刪除后,find繼續嘗試刪除此目錄下其它文件,導致出不“No such file or directory”的錯誤,因此需要于進一步證實此猜想,重新執行以上“第1步”中的數據環境模擬,并執行以下操作,主要是將rm轉換成ls以展現整體運行過程:

[root@edbnode1 ~]# cp -rcp /etc/sysconfig/network-scripts/ /enterprisedb_backup/postgresql/[root@edbnode1 ~]# cp -rcp /etc/init.d/iptables /enterprisedb_backup/postgresql/[root@edbnode1 ~]# /bin/find /enterprisedb_backup/postgresql/ -mtime +7 -exec /bin/ls {} /;ifcfg-eth0 ifcfg-lo	 ifdown-eth  ifdown-isdn ifdown-routes ifup		ifup-eth  ifup-isdn  ifup-post  ifup-sit	  init.ipv6-global  network-functions-ipv6ifcfg-eth1 ifdown	 ifdown-ippp ifdown-post ifdown-sit	 ifup-aliases	ifup-ippp ifup-plip  ifup-ppp   ifup-tunnel  net.hotplugifcfg-eth2 ifdown-bnep ifdown-ipv6 ifdown-ppp  ifdown-tunnel ifup-bnep	ifup-ipv6 ifup-plusb ifup-routes ifup-wireless network-functions/enterprisedb_backup/postgresql/network-scripts/ifup-plusb/enterprisedb_backup/postgresql/network-scripts/ifup-sit/enterprisedb_backup/postgresql/network-scripts/ifdown-post/enterprisedb_backup/postgresql/network-scripts/ifcfg-lo/enterprisedb_backup/postgresql/network-scripts/network-functions/enterprisedb_backup/postgresql/network-scripts/ifup-bnep/enterprisedb_backup/postgresql/network-scripts/ifup-ippp/enterprisedb_backup/postgresql/network-scripts/ifdown-sit/enterprisedb_backup/postgresql/network-scripts/ifdown-tunnel/enterprisedb_backup/postgresql/network-scripts/ifup-plip/enterprisedb_backup/postgresql/network-scripts/ifup-eth/enterprisedb_backup/postgresql/network-scripts/ifdown-ipv6/enterprisedb_backup/postgresql/network-scripts/ifdown-ippp/enterprisedb_backup/postgresql/network-scripts/ifup-aliases/enterprisedb_backup/postgresql/network-scripts/network-functions-ipv6/enterprisedb_backup/postgresql/network-scripts/ifup-ipv6/enterprisedb_backup/postgresql/network-scripts/ifup-post/enterprisedb_backup/postgresql/network-scripts/ifcfg-eth2/enterprisedb_backup/postgresql/network-scripts/ifcfg-eth1/enterprisedb_backup/postgresql/network-scripts/ifdown-ppp/enterprisedb_backup/postgresql/network-scripts/ifup-isdn/enterprisedb_backup/postgresql/network-scripts/ifcfg-eth0/enterprisedb_backup/postgresql/network-scripts/ifdown/enterprisedb_backup/postgresql/network-scripts/ifup-wireless/enterprisedb_backup/postgresql/network-scripts/ifup-ppp/enterprisedb_backup/postgresql/network-scripts/ifdown-eth/enterprisedb_backup/postgresql/network-scripts/init.ipv6-global/enterprisedb_backup/postgresql/network-scripts/ifdown-isdn/enterprisedb_backup/postgresql/network-scripts/ifup-tunnel/enterprisedb_backup/postgresql/network-scripts/ifdown-routes/enterprisedb_backup/postgresql/network-scripts/ifdown-bnep/enterprisedb_backup/postgresql/network-scripts/net.hotplug/enterprisedb_backup/postgresql/network-scripts/ifup/enterprisedb_backup/postgresql/network-scripts/ifup-routes/enterprisedb_backup/postgresql/iptables

通過以上操作我們可以看到,find命令不單查詢了/enterprisedb_backup/postgresql/目錄,并且遍歷了所有子目錄,因此支持了我們的推斷

4.綜上所述基本定位問題所在

解決方案:

1.整理思路后,可以確認,如果find只找出所需操作目錄的第1層文件及目錄即可解決此問題

2.通過偉大的 man 命令我們得到以下信息

-maxdepth levels  Descend at most levels (a non-negative integer) levels of directories below the command line arguments. -maxdepth 0 means only apply the tests and actions to the command line arguments. 

3.測試操作確認修改為:

[root@edbnode1 ~]# /bin/find /enterprisedb_backup/postgresql/ -mtime +7 -maxdepth 1 -exec /bin/rm -rf {} /;/bin/find: warning: you have specified the -maxdepth option after a non-option argument -mtime, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

這里意思是說:-mtime找到的信息可能會操過-maxdepth的范圍,在find操作中建議-maxdepth放在所有其他參數的前面

解決結果【完成】

以上這篇淺談Linux下通過find命令進行rm文件刪除的小技巧就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www国产精品视频| 亚洲毛茸茸少妇高潮呻吟| 国产精品91一区| 91香蕉电影院| 欧美日韩成人免费| 日韩高清av一区二区三区| 欧美大学生性色视频| 亚洲视频专区在线| 91中文精品字幕在线视频| 久久综合网hezyo| 欧美电影在线播放| 国产成人在线视频| 91久久在线播放| 国产精品扒开腿做爽爽爽的视频| 68精品久久久久久欧美| 91热福利电影| 色偷偷噜噜噜亚洲男人的天堂| 国产精品狠色婷| 国产精品久久久久久久app| 亚洲国产日韩欧美在线图片| 亚洲欧美色图片| 精品av在线播放| 欧美精品videosex牲欧美| 久久久国产影院| 久久久久这里只有精品| 亚洲成人在线网| 国产成人精品av在线| 久久久久久亚洲精品中文字幕| 国产成人一区二| 国产精品成人观看视频国产奇米| 亚洲午夜未满十八勿入免费观看全集| www.久久久久| 91久久久久久久久久久| 欧美一级大片在线观看| 欧美性极品xxxx娇小| 国产精品永久免费| 国内精品久久久久| 性欧美长视频免费观看不卡| 91国产美女视频| 亚洲精品电影网在线观看| 亚洲男人天堂2019| 欧美成年人在线观看| 亚洲最大成人免费视频| 亚洲高清在线观看| 欧美精品一区二区三区国产精品| 欧美做爰性生交视频| 成人免费视频在线观看超级碰| 91久久国产精品91久久性色| 亚洲国产高清自拍| 成人在线视频网站| 国产精品羞羞答答| 欧美插天视频在线播放| 久久精品国产69国产精品亚洲| 国产精品久久久999| 久久在线免费视频| 欧美电影免费观看高清完整| 美女福利视频一区| 欧美大片大片在线播放| 国产日产久久高清欧美一区| 日韩精品中文字幕在线| 国产亚洲欧洲高清一区| 日韩视频免费观看| 色妞在线综合亚洲欧美| 欧美一二三视频| 欧美电影在线免费观看网站| 久久久久国色av免费观看性色| 91精品国产网站| 亚洲品质视频自拍网| 最新中文字幕亚洲| 国产精品激情av电影在线观看| 国产精品久久久久久久一区探花| 日韩免费在线免费观看| 欧美国产日韩在线| 国产精品久久久久久久久久ktv| 亚洲男人av电影| 岛国av在线不卡| 欧美午夜片欧美片在线观看| 亚洲天堂成人在线视频| 久久中文字幕视频| 美女av一区二区三区| 欧美肥老妇视频| 日韩成人免费视频| 亚洲免费视频在线观看| 国产精品久久综合av爱欲tv| 九九精品视频在线| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品一二三视频| 中文字幕少妇一区二区三区| 日本国产高清不卡| 中日韩美女免费视频网址在线观看| 日韩电影大片中文字幕| 久久久久一本一区二区青青蜜月| 国产999精品久久久影片官网| 欧美日韩激情视频8区| 午夜精品久久久久久久白皮肤| 91精品国产91久久久久福利| 亚洲视频电影图片偷拍一区| 国产日韩欧美自拍| 97视频在线观看免费| 另类美女黄大片| 综合网中文字幕| 亚洲va久久久噜噜噜| 亚洲成人黄色网址| 亚洲bt欧美bt日本bt| 91久久在线播放| 91香蕉嫩草神马影院在线观看| 亚洲女人天堂视频| 国产精品h在线观看| 按摩亚洲人久久| 国产精品一香蕉国产线看观看| 国产69精品久久久久9| 91精品综合久久久久久五月天| 91久久嫩草影院一区二区| 欧美日韩另类在线| 黑人精品xxx一区一二区| 91香蕉亚洲精品| 亚洲第一天堂av| 亚洲自拍小视频免费观看| 欧美极品欧美精品欧美视频| 国产成人福利网站| 亚洲一区二区中文| 欧美精品一区二区免费| 国产极品jizzhd欧美| 日韩欧美在线免费| 国产精品丝袜久久久久久高清| 97国产真实伦对白精彩视频8| 欧美理论电影网| 国产精品久久久久久搜索| 97精品欧美一区二区三区| 国产精品久久久久久久久粉嫩av| 久久久久久网站| 中文字幕欧美精品在线| 欧美激情videos| 欧美日韩国产综合新一区| 国产精品伦子伦免费视频| 亚洲天堂成人在线| 97人人爽人人喊人人模波多| 亚洲成人999| 亚洲偷熟乱区亚洲香蕉av| 亚洲大胆人体av| 久久免费视频这里只有精品| 欧美成人午夜影院| 国产黑人绿帽在线第一区| www.欧美视频| 国产精品久久久久久久久久尿| 久久影院在线观看| 欧美日韩综合视频| 精品亚洲一区二区三区在线播放| 欧洲亚洲免费在线| 精品国产视频在线| 久久久久久久香蕉网| 日韩精品免费在线观看| 国产91在线高潮白浆在线观看| 亚洲美女精品久久| 日韩欧美在线国产| 久久精品人人爽| 欧美高清视频免费观看| 国产成人综合精品| 日韩电影中文字幕在线观看| 国产精品久久久久久久久借妻| 狠狠做深爱婷婷久久综合一区| 亚洲护士老师的毛茸茸最新章节| 久久久精品一区二区| 久久综合伊人77777|