命令可以用来在某一时段执行一次任务,只会执行一次,不会重复执行。
- at
at 命令是由 atd 服务来控制的,使用之前先查看 atd 服务是否正常:
- $ /etc/init.d/atd status
- * atd is running
如果没有的话就需要安装:
- $ sudo apt-get install at
- $ /etc/init.d/atd start
命令的基本语法:
- at
- at[options] TIME
常用的 options:
TIME 是时间,常用的格式:
:在今天的某时某刻开始执行任务,如果时间已过,则延迟到明天的这个时间开始。
- HH:MM
:在具体的某年某月某天执行。
- HH:MM YYYY-MM-DD
- HH:MM[am|pm] [Month] [Date]
:在某个时间点再加上时间后执行,ex:
- HH:MM[am|pm] + number [minutes|hours|days|weeks]
- now + 1 minutes
一个例子:
创建一个任务,1 分钟后输入 hello world 到 / tmp/t1 文件
- $ at now + 1 minutes
- at> echo "hello world" > /tmp/t1
- at> <EOT> # 输入完成后按Ctrl + d保存
可以使用
或者
- at -l
来查看刚才创建的任务:
- atq
- $ atq
- 3 Fri Aug 11 22:41:00 2017 a jby
3 是任务序号,如果创建错了任务就可以使用这个数字来删除:
- $ atrm 3
可以用过配置文件来设置哪些用户能使用 at 命令,哪些用户不能使用:
文件,如果这个文件存在,那么只有在这个文件里面的用户才能使用 at 命令。
- /etc/at.allow
文件,如果文件存在,那么不在这个文件里面的用户才可以使用 at 命令。
- /etc/at.deny
2 个文件的内容格式都是一行一个用户名
batch 命令的用法跟 at 一样,只不过 batch 添加的任务会在 CPU 负载小于 0.8 的时候才执行,如果到了执行时间点 CPU 负载过高就会延缓执行。
命令是用来一直循环执行某个任务。
- crontab
基本语法:
- crontab[ - u user][ - l - e - r]
一个列子:
输入
进入编辑模式,输入
- crontab -e
,然后保存退出(不需要重新启动 cron 服务,会自动每分钟重新读取任务内容)。
- 5 * * * * echo "hello >> /tmp/t1"
任务的格式为:
- 分时日月周命令
前面 5 个字段是时间,他们之间用空格隔开。表示的就是再某一个时间点执行任务,取值范围就是正常的时间取值范围(比如:分钟是 0-59,时是 0-23), 周的取值是 0-7 表示星期一到星期天,o 跟 7 都是星期天
例子:
一些特殊的取值:
cron 服务也有两个文件
、
- /etc/cron.allow
来控制用户的使用权限,逻辑都
- /etc/cron.deny
一样
- at
来源: http://www.cnblogs.com/jiangbingyang/p/7445343.html