
log備份壓縮以及擷取指定内容到新檔案
[1].[代碼] [shell/批處理]代碼 跳至 [1] [2]
#!/bin/sh
#============ get the file name ===========
folder_a="/mnt/log/" #這是我log存放的地方
#output_file="mysql.txt"
t=$(date +%y%m%d%h%m%s) #時間戳,命名用
d=$(date +%y%m%d)
for file_a in ${folder_a}/*; do #擷取該檔案夾下的所有日志檔案
temp_file=`basename $file_a`
#echo $temp_file >> $output_file
while read line #讀行
do
grep "sessionid">>/mnt/datas/mysql_$d.txt; #擷取含sessionid的行輸出到txt檔案
done < ${folder_a}/$temp_file
done
ls ${folder_a}/ #壓縮
if [ $? -eq 0 ];then
tar -zcvf log_$t.tar.gz ${folder_a}/ #壓縮
else
echo "yourdir is empty!" >>log.log #該shell運作的log
fi
for file_b in ${folder_a}/*; do #清空日志檔案,不是删除
temp_file=`basename $file_a`
cat /dev/null >${folder_a}/$temp_file
[2].[代碼] 定時器 跳至 [1] [2]
crontab -e #編輯定時器
insert
#每天淩晨兩點執行,路徑得看你們自己的路徑
0 2 * * * cd /mnt/shell/ && /mnt/shell/log.sh >> /mnt/shell/log.log 2>&1
#最後記得啟動定時器