重定向 在定時執行任務 還有服務后台啟動 命令輸出比較多
先說一下linux重定向: 0 標准輸入 1 標准輸出 2 錯誤信息輸出
在一般使用時,默認的是標准輸出;1
例如,將某個程序的錯誤信息輸出到log文件中? ./program 2>log。 這樣標准輸出還是在屏幕上,但是錯誤信息會輸出到log文件中。 Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它。
后台運行時候 會有個 nohup 但是使用nohup時,會自動將輸出寫入nohup.out文件中nohup.out自動增大 ;可以利用/dev/null來解決這個問題。
nohup ./program >/dev/null 2>log & 如果錯誤信息也不想要的話: nohup ./program >/dev/null 2>&1 &
Linux下如何不停止WEB服務清空nohup.out文件; 第一種:cp /dev/null nohup.out 第二種:cat /dev/null > nohup.out
定時刪除日志腳本命令;(刪除時間)
cat rm-log.sh
#! /bin/bash find /var/log/ -mtime +3 -name *-2016* -exec rm -rf {} \;
chmod +x rm-log.sh
crontab 定時任務
0 1 * * * /opt/soft/log/rm-log.sh >/dev/null 2>&1
定時清空 nohup.out 文件;
vi /opt/del.sh #! /bin/bash cat /dev/null > nohup.out
chmod a+x del.sh
crontab -e 0 1 * * * /opt/del.sh >/dev/null 2>&1 以下方法將每10秒執行一次 # crontab -e * * * * * /bin/date >>/tmp/date.txt * * * * * sleep 10; /bin/date >>/tmp/date.txt
每分鍾; */5 * * * * /opt/del_nohup.sh 每五分鍾執行 */5 * * * * 每小時執行 0 * * * * 每天執行 0 0 * * * 每周執行 0 0 * * 0 每月執行 0 0 1 * * 每年執行 0 0 1 1 *
