您的位置:首页 > 运维架构 > Shell

linux shell 编程笔记 - 后台执行命令crontab

2016-03-03 19:58 447 查看
后台执行命令,就是把shell命令放到系统后台去执行,不会在终端显示,不会影响用户在终端继续工作;就算终端关闭了命令也一样在执行。

名词解释:

1)、cron    系统调度进程;
   
2)、at    at命令,在特定的时间运行特殊的作业;
   
3)、&    在后台运行一个占用时间不长的进程;
   
4)、Nohup    在后台运行一个命令,即使用户退出也不受影响。
1、crontab命令:

crontab命令,用于定期执行shell作业。crontab是以crontab文件的形式向cron进程提交作业的。

crontab命令是周期性执行作业。

root用户可以通过/etc目录下的cron.deny和cron.allow来禁用和启用用户拥有自己的crontab文件。

2、crontab的域说明:

第1列    分钟1~59
   
第2列    小时1~23(0表示子夜)
   
第3列    日1~31
   
第4列    月1~12
   
df50

第5列    星期0~6(0表示星期天)
   
第6列    要运行的命令(可以是shell命令,也可以是shell脚本文件)
3、crontab的格式:

 分<>时<>日<>月<>星期<>要运行的命令
   #<>表示空格

说明:

1)、如果一个时间域,用*代替,说明是任意数;
   
2)、如果一个时间域,要填写多个数,可以通过逗号分隔;
   
3)、如果一个时间域,要填写一段持续的时间,可以通过-分隔;
实例:
30 21 * * * /apps/bin/cleanup.sh    #每天晚上21:30执行/apps/bin目录下的cleanup.sh这个shell脚本;
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;    #每周六、周日的1:10执行find命令查找文件并删除文件;
0,30 18-23 * * * /apps/bin/dbcheck.sh    #每天18:00~23:00,每30分钟执行一下shell脚本;
注意事项:

1)、向cron提交作业,执行shell脚本文件时,需要使用绝对目录来指定shell脚本文件;
   
2)、shell脚本中,使用的环境都需要在shell中定义清楚;
   
3)、向cron提交作业之前,要配置EDITOR环境变量,目的是让cron进程知道,使用什么编辑器来执行crontab文件。
       
编辑用户$HOME目录下的.profile文件( gedit ~/.profile ),添加以下内容:

       
EDITOR=vi; export EDITOR
4、创建新crontab文件:

1)touch cbcron
   
2)gedit cbcron    #加入以下内容
# echo something to file every 10 minutes between 14 and 18
5,10,15,20,25,30,35,40,45,50,55 14-18 * * * /bin/echo 'hell cb!' >> /home/cb/Documents/cbhello

3)提交crontab:    crontab cbcron
   
4)列出crontab:    crontab -l
   
6)备份crontab:    crontab -l > $HOME/mycron    #把crontab备份到用户根目录的mycron文件;
5、编辑crontab文件:
crontab -e    #系统会用设置好的EDITOR环境变量指定的编辑器打开crontab;

6、删除crontab文件:

crontab
-r
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: