赞
踩
通过Linux上的crontab命令,我们可以在规定的间隔时间执行指定的系统指令或脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。
crontab默认在Ubuntu上是已经安装的,若未安装,则可执行以下命令进行安装:
sudo apt-get install cron
cron服务(守护进程)在系统后台运行,并且会持续地检查/etc/crontab文件和/etc/cron.*/目录,也同样会检查/var/spool/cron/目录。每个用户都可以拥有自己的crontab文件,这些文件都位于/var/spool/cron/crontabs目录中,不可以直接编辑它们,需要通过crontab命令来编辑或配置自己的定时任务。/etc/crontab是系统的crontab文件,通常只被root用户或守护进程用于配置系统级别的任务。
crontab配件文件分为两种不同的类型:
(1). 系统级crontab:此类型通常由那些需要root或类似权限的系统服务和重要任务是要;
(2). 用户的crontab:用户可以使用crontab命令来安装属于他们自己的定时任务。
crontab常用命令参数介绍:
- # 编辑某个用户的crontab文件内容,如果不指定用户,则表示编辑当前用户的crontab文件
- crontab -e
- # 显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容
- crontab -l
- # 从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件
- crontab -r
- # 在删除用户的crontab文件时给确认提示
- crontab -i # crontab -ir
crontab文件格式:第1列:分钟(minute),取值范围0~59;第2列:小时(hour),取值范围0~23;第3列:日(day),取值范围1~31;第4列:月(month),取值范围1~12;第5列:星期(week),取值范围0~7,这里的0或7代表星期日;第6列:要运行的命令(command)。前5列用空格分开,是设定时间的。
在以上各个列中,还可以使用以下特殊字符:
“*”:指定取值范围内的所有可能的值,如在小时中,一个星号等同于每个小时;
“,”:指定多个值的列表,如1,5,10;
“-”:指定一个值的范围,如1-5等同于1,2,3,4,5;
“/”:指定一个时间的间隔频率,如在小时中,*/2,表示每2小时执行一次
crontab文件中的每一行都代表一项任务。
crontab服务管理命令:
- sudo service cron status # 查看crontab服务状态
- sudo service cron start # 启动crontab服务
- sudo service cron stop # 关闭crontab服务
- sudo service cron restart # 重启crontab服务
- sduo service cron reload # 重新载入crontab配置
示例:首先执行:$ crontab -e ,编辑crontab文件,内容如下图所示,保存:
test.py内容如下:
- import datetime
-
- print("now time:",datetime.datetime.now())
然后执行:$ sudo service cron restart ,过几分钟后info.txt文件的内容如下:
最后取消crontab任务,执行: $ crontab -ri ,执行结果如下图所示,下图中的上半部分显示的结果是在执行crontab -ri前先执行crontab -l输出的结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。