现在的位置: 首页 > 综合 > 正文

脚本添加定时任务(Linux)

2014年03月23日 ⁄ 综合 ⁄ 共 1006字 ⁄ 字号 评论关闭

   引言:前段时间写了个脚本,用来定时备份数据库的
,后来定时任务也添加了,结果却要求写个脚本去添加定时任务,哎...当时真是一头雾水!后来请教了下高人,得以解决。下面我们来看到脚本。

 

#!/bin/bash
myscript=resume_backup.sh
filePath=$(cd "$(dirname "$0")";pwd)
echo $filePath
crontab -l > cron
number=`grep -n "$myscript" cron | cut -d ":" -f 1`
aa=$number
echo $aa
if [ -z $aa ];
then
echo "该任务不存在,将添加"
echo '1 12 * * * '$filePath'/'$myscript'' >> cron
crontab cron
rm -f cron
else
echo "该任务已经存在,将会先删除再添加"
sed -i '/'$myscript'/d' cron
echo '0 0 * * 0 '$filePath'/'$myscript'' >> cron
crontab cron
rm -f cron
fi

    这个脚本的大致功能就是,首先去判断任务是否已经存在,存在的话就先删除,再去添加,不存在就直接添加了。

  

  代码解释:crontab -l > cron  这行就是将定时任务写到一个中间文件中,方便下面对定时任务的操作。

                  number=`grep -n "$myscript" cron | cut -d ":" -f 1`  这个是获得$myscript在cron中所在的行数。

                  if [ -z $aa ]; 判断aa是否为空。

                  echo '1 12 * * * '$filePath'/'$myscript'' >> cron 将 '1 12 * * * '$filePath'/'$myscript'' 写到 cron中去。

                  crontab cron  将cron中的内容写到定时任务中去(全部覆盖)。

                  sed -i '/'$myscript'/d' cron  从cron中删除包含$myscript的行。

                   rm -f cron  删除中间文件cron。

       

       脚本很强大,永远保持一颗学习脚本的心!!! 

                   

                 

 

抱歉!评论已关闭.