有时我们在在写完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
待执行完计划后,查看日志文件,是正常的