定时执行脚本
方法1:
使用命令 crontab -e 然后直接编辑定时脚本。
这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。
定时执行脚本三要素:
(1)设置可执行权限 chmod +x filename
(2)编写脚本,脚本的开头cd到执行的目录下
代码如下:
#! /bin/sh
localDir="(执行路径)"
cd $localDir //进入执行路径
successLog=sendsuccessdata
processfailLog=processfaildata
sendfailLog=sendfaildata
date1dayAgo=`date -d -12hour +%Y%m%d%H`
for i in 文件名前缀+*
do
rm ${localDir}/$i/${successLog}.*.${date1dayAgo}*
rm ${localDir}/$i/${processfailLog}.*.${date1dayAgo}*
rm ${localDir}/$i/${sendfailLog}.*.${date1dayAgo}*
echo $i/${successLog}.*.${date1dayAgo}* >>${localDir}/rm.log
echo $i/${processfailLog}.*.${date1dayAgo}* >>${localDir}/rm.log
echo $i/${sendfailLog}.*.${date1dayAgo}* >>${localDir}/rm.log
done
(3)增加定时任务 crontab -e ——>编辑
crontab的范例格式:
例如:
5 5 * * * /opt/app/rmLog.sh >/dev/null 2>&1
每天的5点5分执行/opt/app/rmLog.sh脚本,
/dev/null 2>&1
2>&1 意思是将错误输出重定向到句柄1标准输出
最后,把所有的输出(1,2)都回收(/dev/null).
下面是crontab的格式:
分< >时< >日< >月< >星期< >要运行的命令
其中< >表示空格。
第1列分钟1~5 9
第2列小时1~2 3(0表示子夜)
第3列日1~3 1
第4列月1~1 2
第5列星期0~6(0表示星期天)
第6列要运行的命令
方法2:
使用命令 vi /etc/crontab 编辑定时脚本。
注:
(系统级的)做系统级配置我们会直接配置 /etc/crontab
(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。