linux日誌腳本
#!/bin/bash
#SystemDate
date=$(date +%Y%m%d)
source_url=日誌現存路徑
target_url=將原日誌備份的路徑
cp $source_url/logname $target_url/logname_$date
cat /dev/null > $source_url/logname
原日誌需要以>>方式輸出到logname
例:命令>>logname&
❷ linux的日誌伺服器中,如何用腳本將日誌按年歸檔進指定目錄
在腳本nohup設置每天開始拷貝日誌作為前一天的日誌備份,然後把當前日誌清空即可,代碼如下:
crontab-e
//增加:
00***cp/dirname/logfile.log/bakdir/logfile.`date-dyesterday+%Y%m%d`.log;cat/dev/null>/dirname/logfile.log
//每周日凌晨1:00打包、刪除文件:
01**0cd/bakdir;find./+mtime7-exectarcvflogfile.`date-dyesterday+%Y%U`.tar{};;find./-mtime91-execrm-f{};
❸ linux 清除前一天日誌的腳本
Linux有正常的日誌的輪替,即:把現在的日誌重命名然後再產生新的日誌文件,可以利用這個原理來清空當前的日誌文件,而不會導致以前的日誌流失!這樣的話你可以設置你的日誌文件為每天一輪換,則當前日誌文件內的信息就是今天的日誌!
vi/etc/logrotate.conf 把其中的weekly或者monthly改為dayly就行!
❹ Linux shell腳本按日期 切割pm2日誌
linux shell腳本按日期 切割pm2日誌 (解決定時任務pm2命令無法執行問題,原因:沒有環境變數)
首先在輸入命令echo $PATH 拿到當前系統環境變數
然後在/root/.pm2目錄新建cutlog.sh文件(注意:第一句一定要有,設置當前shell腳本裡面的環境變數,沒有的話pm2命令會無法執行)
PATH=/root/.nvm/versions/node/v6.10.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
CURPATH=/root/.pm2
OUTPATH=/home/cutLogsDate
mkdir -p $OUTPATH
INPUTPATH=$CURPATH/logs
reloadProcessLogs(){
logFilesGame="${INPUTPATH}/$1"
yesterday=`date -d last-day '+%Y%m%d_'$2`
logOfLastDay=$OUTPATH/$yesterday.log
mv $logFilesGame $logOfLastDay
touch $logFilesGame
echo "切割$1成功"
}
reloadProcessLogs 'game-out-0.log' 'game_out'
pm2 reloadLogs設置定時任務
輸入crontab -e命令編輯
0 3 * * * sh /root/.pm2/cutlog.sh
❺ linux 備份結果輸出到日誌腳本
給你講一下Linux下的
先創建個嫌隱賀備份腳本的文件保存為backup.sh,然後讓corn在指定時間運行就可以了
備份腳本內容:
cp -r 日誌目錄 要備份的目錄
tar -zcvf bak$(date +%Y%m%d).tar.gz 要備份的目錄 //將數據所在文件夾bak打包
呵呵,很簡單,攜卜復制、打包就ok了
然後就是計劃任務了
修改crontab內容
#crontab -e
* * * * * /腳本所在完整路徑/backup.sh
如:22 11 1 * * /home/backup.sh 就是每月的1號11點22分執行home下的backup.sh腳本
前面五個欄位分別表示分鍾、小時、日、月、星期幾(0-6)後面的為腳本所在目錄
3,重新啟動crond服務
#service crond restart
如果沒有安裝crond服務就先裝上服務再說,用service crond status可以查看該服務狀態
windows的也是差不多,也是復制打包芹派的,然後就計劃任務就ok了
❻ Linux 系統 shell腳本定時 清空系統日誌文件
其實沒有必要寫shell腳本,簡單一句話放在系統定時任務里就行了。
比如你的日誌文件名叫a.log。路徑為/tmp/a.log;
那麼你可以寫個定時任務,這樣做:crontab -e 進入定時任務器,然後把下面這段寫到裡面
00 02 * * * echo " " >/tmp/a.log
然後保存退出就可以了。這段內容意思是,每天凌晨2點自動清空a.log內容。你也可以自己定義多久清一次。比如想10分鍾清一次,就這么寫*/10 * * * * echo " " >/tmp/a.log。具體的crontab時間定義你可以去網路查查。希望對您有用!
❼ Linux系統下nginx日誌每天定時切割的腳本寫法
下面是deepvps自己用的自動每天定時切割Nginx日誌的`腳本,很方便很好用,推薦給大家使用。本腳本也是參考了張宴老師的文章,再次感謝張宴老師。
1、創建腳本/usr/local/nginx/sbin/cut_nginx_log.sh
vi /usr/local/nginx/sbin/cut_nginx_log.sh
輸入以下內容:
#!/bin/bash
# This script run at 00:00
# The Nginx logs path
logs_path=」/home/www/logs/」
mkdir -p ${logs_path}$(date -d 「yesterday」 +」%Y」)/$(date -d 「yesterday」 +」%m」)/
mv ${logs_path}access.log ${logs_path}$(date -d 「yesterday」 +」%Y」)/$(date -d 「yesterday」 +」%m」)/access_$(date -d 「yesterday」 +」%Y%m%d」).log
kill -USR1 `cat /usr/local/nginx/nginx.pid`
2、設置crontab,每天凌晨00:00切割nginx訪問日誌
crontab -e
輸入以下內容:
00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh