- 论坛徽章:
- 0
|
linux 5.3
crontab
00 3 * * 3,6 /home/csuser/shelldir/deletelogs.sh >> /home/csuser/shelldir/deletelogs.log 2>&1
shell脚本/home/csuser/shelldir/deletelogs.sh如下:
#!/bin/sh
#/home/csuser/.bash_profile
echo "--EXP BEGIN------"`date`"------"
##############################################################
echo "Delete log files:/home/csuser/Logs/tomcatlogs/catalina.yyyy-mm-dd.log"
logdir=/home/csuser/Logs/tomcatlogs
cd $logdir
filenum=`ls -thl |grep catalina|wc -l`
savefilenum=15
if [ "$filenum" -gt "$savefilenum" ]
then
ls -thl catalina* | tail -n +$[$savefilenum + 1] |awk '{print $8}'| xargs rm -f
else
filenum=$savefilenum
fi
echo "Deleted files: $[$filenum-$savefilenum]"
echo "--EXP END------"`date`"------"
crontab自动执行,执行的结果不正确,不是保留15个文件,执行结果如下:
/home/csuser/shelldir/deletelogs.log
--EXP BEGIN------Sat Feb 23 03:00:01 CST 2013------
Delete log files:/home/csuser/Logs/tomcatlogs/catalina.yyyy-mm-dd.log
Deleted files: 12
--EXP END------Sat Feb 23 03:00:01 CST 2013------
手工执行如下命令,结果正确
/home/csuser/shelldir/deletelogs.sh >> /home/csuser/shelldir/deletelogs.log
/home/csuser/shelldir/deletelogs.log结果如下:
--EXP BEGIN------2013年 02月 25日 星期一 09:35:12 CST------
Delete log files:/home/csuser/Logs/tomcatlogs/catalina.yyyy-mm-dd.log
Deleted files: 15
--EXP END------2013年 02月 25日 星期一 09:35:14 CST------
现在有两个问题:
1、crontab自动执行和登录手工执行有什么区别,是环境问题吗,如是环境问题会影响脚本执行结果吗?
2、两次执行的日期格式显示为何不一样? |
|