虽然通过 crontab 安排下面的脚本会收到错误的输出日期格式,但会出现错误

虽然通过 crontab 安排下面的脚本会收到错误的输出日期格式,但会出现错误
PFB script
dd=$(perl -e 'use POSIX;print strftime "%Y%m%d",localtime time-172800;')

Date=$(perl -e 'use POSIX;print strftime "%d%m%Y",localtime time-172800;')

for i in `cat /path/Path_CDR.txt`
do
cd $i
compress event*$dd*.asn
compress event*$dd*.CDR
zcat event*$dd* |grep Event |awk -F "," '{print $14,$16}'|awk -F '"' '{print $2","$4","'$Date'}' >>/path/abc$Date.txt

done

输出 1:使用 sh -x(脚本名称)手动运行的脚本输出按照以下格式(Coorect)

07923243305,14,4112019
07923241717,44,4112019
07923224727,33,4112019
07923241717,10,4112019

当 crontab 上安排计划时,输出格式如下,只有日期格式问题(日期问题 4.11202e+06)

07923243305,14,4.11202e+06
07923241717,44,4.11202e+06
07923224727,33,4.11202e+06
07923241717,10,4.11202e+06

请帮助我

答案1

最有可能的是您的语言环境变量不在 cron 环境中。

检查 shell 环境中 LANG* 和 LC_* 的值,并在脚本开头明确设置它们,例如

[alex@alex ~]$ set | grep ^LANG
LANG=en_US.UTF-8
[alex@alex ~]$ set | grep ^LC_

所以我会放一个

export LANG=en_US.UTF-8

在剧本的开头

相关内容