在開發中,我們避免不了寫crontab指令碼來非同步執行一些東西,一般設定crontab用下面的方法
[plain]view plain
copy
print?
*/1 * * * * commond > /tmp/t.log 2>&1
後面的 2>&1 代表把標準錯誤輸出指向標準輸出,意思是當commond異常退出時,把異常退出時的日誌也寫到 /tmp/t.log 下面,這時記錄的日誌是沒有時間資訊的,就是說日誌裡的資料沒有辦法知道是什麼時候列印出來的。
下面通過乙個shell來解決這件事,**如下
[plain]view plain
copy
print?
#!/bin/bash
if [ $# -gt 1 ]; then
istring=''
#去掉回車
date=`date | tr -s ["\n"]`
for (( i = 2; i <= $#; i++ ))
do
string=$string" "$
done
c=$date": "$string
echo "" >> $1
echo $c >> $1
fi
把上面的**放到根目錄下,儲存為 datecrontalog.sh
然後在crontab -e用下面的指令碼代替
[plain]view plain
copy
print?
*/1 * * * * commond 2>&1 | xargs $home/datecrontalog.sh /tmp/t.log
日誌 重定向
python 將終端 terminal 或者控制台的輸出結果輸出至 log 檔案 以檔案形式儲存 重定義 logger 類,然後 sys.stdout logger log檔名及路徑 import sys class logger object def init self,logfile defau...
輸入重定向,正確輸出重定向,錯誤輸出重定向
一 標準輸入 stdin a.輸入重定向 標準輸入 作用 將原先鍵盤輸入的內容改由檔案內容代替 root wenwen cat test.txt asdas asdas asdas 按crtl d 退出 將network內容匯入到test.txt中去 root wenwen cat test.txt...
關於crontab以及輸出重定向
linux下可以通過配置crontab來定時執行任務,執行體可以是一條系統命令或自己寫的乙個指令碼,同時可以指派使用者來執行。配置crontab有兩種方法。方法1 使用crontab命令,例如新增乙個新的或編輯已有的,使用 crontab e就可以進入配置檔案。此時配置crontab的執行者是當前登...