linux shell腳本按日期 切割pm2日誌 (解決定時任務pm2命令無法執行問題,原因:沒有環境變量)
1.首先在輸入命令echo $PATH 拿到當前系統環境變量
2.然後在/root/.pm2目錄新建cutlog.sh文件(注意:第一句一定要有,設置當前shell腳本里面的環境變量,沒有的話pm2命令會無法執行)
PATH=/root/.tnvm/versions/alinode/v3.8.4/bin:/root/.nvm/versions/node/v8.9.0/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'
3.pm2 reloadLogs設置定時任務
輸入crontab -e命令編輯
0 3 * * * sh /root/.pm2/cutlog.sh