crontab执行shell脚本日志中出现乱码
生活随笔
收集整理的這篇文章主要介紹了
crontab执行shell脚本日志中出现乱码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用nutch開源的搜索引擎抓取網頁信息,通過計劃任務crontab執(zhí)行shell腳本,并將啟動信息記錄進日志文件,但是每次都會出現亂碼,如圖所示
經過反復測試,排除了java程序問題,文件權限問題,系統(tǒng)字符集的環(huán)境變量問題(en_US.UTF-8),發(fā)現手動執(zhí)行shell腳本不會出現亂碼,寫在計劃任務里自動執(zhí)行就會出現亂碼,最后確定是計劃任務crontab執(zhí)行腳本問題。
問題原因:
因為Unix/Linux下使用crontab時的運行環(huán)境已經不是用戶環(huán)境了,因此原本用戶下的一些環(huán)境變量的設置就失效了。例如原來用戶環(huán)境變量設置的是GB2312,但是使用crontab運行時的環(huán)境變量就可能是ISO8859-1、UTF-8。
?
解決方法:
首先執(zhí)行命令echo?$LANG,假設輸出是en_US.UTF-8
然后在腳本中增加一行與系統(tǒng)字符集的環(huán)境變量一致
export LANG=en_US.UTF-8計劃任務里再次自動運行java程序發(fā)現問題解決!
總結
以上是生活随笔為你收集整理的crontab执行shell脚本日志中出现乱码的全部內容,希望文章能夠幫你解決所遇到的問題。