關於crontab執行shell腳本的字符編碼問題

有時我們在在寫完shell腳本後,在使用bash執行是正常的如下

/var/crontab/clouds.sh


#! /bin/bash

log_name="/var/log/clouds.log"

echo begin:$(date) >> $log_name

cd /datas

tar -czf /clouds/www-$(date "+%Y%m%d%H%M").tar.gz www 2>> $log_name

tar -czf /clouds/conf-$(date "+%Y%m%d%H%M").tar.gz /etc/httpd/conf 2>> $log_name

echo end:$(date) >> $log_name


我們在在命令行下,運行

bash /var/crontab/clouds.sh一切正常,日誌裏的時間都是utf-8

我們在crontab裏設置一個計劃,

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

08 11 * * * root /var/crontab/clouds.sh

在到日誌文件裏,查看裏面的內容都不是utf-8的格式的,全是英文模式下的,


在到日誌文件裏,查看裏面的內容都不是utf-8的格式的,全是英文模式下的,

我們時在/var/crontab/clouds.sh進行修改增加一行

. /etc/profile

加載用戶環境變量,即

#! /bin/bash

. /etc/profile

log_name="/var/log/clouds.log"

echo begin:$(date) >> $log_name

cd /datas

tar -czf /clouds/www-$(date "+%Y%m%d%H%M").tar.gz www 2>> $log_name

tar -czf /clouds/conf-$(date "+%Y%m%d%H%M").tar.gz /etc/httpd/conf 2>> $log_name

echo end:$(date) >> $log_name

待執行完計劃後,查看日誌文件,是正常的


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章