2016-11-24 58 views
-2

我對bash腳本編程有點新,並且有一個我需要知道完成的有效方法的場景。 我需要檢查一個目錄內的所有文件的大小,如果任何文件的大小超過一定的限制,我需要清空這些文件,然後發送電子郵件到郵件ID的詳細信息,如清空文件的名稱,原始尺寸,清空後的當前尺寸。 發現很多關於同一主題的博客,但只是想檢查我可以完成上述場景的最有效的方式。如何檢查目錄內的所有文件的大小,如果超過特定大小則清空它

謝謝

+0

你的意思是[logrotate](http://www.linuxcommand.org/man_pages/logrotate8.html)? –

+0

@CostiCiudatu不,我沒有logrotate場景。我只需要清空這些文件。這些文件不需要備份。清空文件後,我需要根據上述條件發送電子郵件。 – Sam

+0

** rotate ** * count * - '如果count爲0,舊版本將被移除,然後旋轉。** ** mail ** * address * - '當日志旋轉不存在時,它是郵寄到地址。**大小** *大小* - 當日志文件變大並大小字節時,日誌文件將被旋轉。同時檢查**創建**/** copytruncate **。 –

回答

0

能夠在find命令的幫助下完成上述場景。

rm -f logFile* 
find . -type f -size +20k -exec du -sh {} \; >> logFile.txt 
cat logFile* 
find . -type f -size +20k -exec truncate -s 0 {} \; 
相關問題