有時我們在在寫完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
待執行完計劃後,查看日誌文件,是正常的