定期清理linux伺服器日誌文件的幾個思路
1,在跑批程序中,用java代碼調用shell腳本;
2,在跑批程序中,用純java代碼實現,也就是使用java的文件操作類File;
3,純shell腳本方式,使用linux伺服器的調度程序調用shell腳本;
結合最近的項目,這里提供一個示例。首先,我們是在跑批項目中實現的定期清理日誌功能,
因為我們有跑批項目,使用的是Control M進行調度,所以這種方式還是很方便的。
第一步:寫shell腳本
find /home/logs/ -mtime +30 -name "*.log" -exec rm -rf {} ;
腳本其實很簡單,一行代碼就夠了,把這個代碼放在一個shell文件中,然後放在伺服器的
指定目錄下,等待java程序調用。
第二步:寫java代碼,調用shell腳本,示例代碼僅提供思路,請大家自己調試
// 設置可執行許可權
String commond = "chmod 777 clearLogFileOnTime.sh";
Process proc = Runtime.getRuntime().exec(commond);
proc.waitFor();
// 執行shell腳本
commond = "bash clearLogFileOnTime.sh";
proc = Runtime.getRuntime().exec(commond);
第三步:配置Control M,進行作業調度
關於Control M的配置不再贅述,主要就是設置跑批程序的執行時間,以及一些其他參數。