写在前面
随着学习的不断深入,渐渐的已经意识到不再是开始一天只知道几个简单的命令而已了,但是呢,命令还必须要继续学习的,修房子哪有不用砖的,所以,要想有一栋坚实稳固的房子,还必须静下心来继续认识命令。
命令注解
今天要讲的几个命令是跟工作息息相关的,他们都是在以后的生活中使用率比较高的命令之一,比如马上要讲的这个,如果你的老板让你在每天凌晨三点执行一次数据备份,你难道真的三点起床备份完再去睡觉么?我想你肯定不想也不希望这样,那么下面这个命令就要学好了。
任务计划是在未来的某个时间点或周期性的时间点上执行我们预先设定好的可执行任务,让系统自动运行,而不用人工干预执行。这种执行也分为一次执行和周期性执行,一次执行最常用的要数at命令,而周期性的执行命令则是crontab。 at的使用方法也非常简单,基本的使用方法为:
at [OPTIONS] TIME
常用选项:
- -l:用于查看作业队列;
- -f FILE_NAME:从指定文件中读取作业任务;
- -d #:删除指定的作业;
- -c:查看指定作业的具体内容;
- -q QUEUE:指明队列
at命令允许使用一套相当灵活的指定时间的方法。能够接受hh:mm(小时:分钟)式的时间指定,也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的时间来指定。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午,还能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。 上面介绍的都是绝对计时法,其实at还支持使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。因此TIME的格式有如下常用指定方法:
- HH:MM:在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务;
- HH:MM YYYY-MM-DD:在某年某月的某一天的特殊时刻进行该项任务;
- noon,midnight,teatime:指定模糊的时间方式;
- tomorrow:直接指定明天;
- now+#[minutes|hours|days|weeks]:从现在开始以后的多长时间;
另一个任务计划则是周期性的执行任务crontab命令,cron分为系统任务和用户任务,系统任务主要是用于系统自身的维护,而用户任务则是用户自定义的为了完成某一特定的工作。所有用户定义的任务都被保存在 /var/spool/cron目录中与用户名同名的文件中,每一行代表一个任务计划,共有六个字段,前五个字段是时间,最后一个是命令段:
在以上的时间段中,可以有如下取值方法:
- 特定值:给定时间点有效取值范围内的值;
- *:给定时间点上有效取值范围内的所有值:表“每……”;
- ,:给定时间点上使用逗号分隔的多个值;
- -:在时间点上使用-连接开头和结束,表示一个范围;
- */#:在指定时间点上,定义步长,#即步长;
cron任务还可以通过命令行的方式指定,即使用crontab命令:
crontab [OPTIONS]
常见的有如下选项:
- -e:编辑任务;
- -l:列出所有任务;
- -r:移除所有任务;
- -i:在使用-r选项移除所有任务时提示用户确认;
- -u user:root用户可为指定用户新建cron任务;
使用练习
有了上面的储备知识,还是来练习提升一下吧。
1、制定每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-
28 10:00:00。
使用crontab -e打开命令行操作窗口,完成如下信息输入:
写在最后
上面的内容只是作了简单的介绍,练习也只贴出了一个,如果您觉得不够尽兴,可以通过网络途径获取更多练习,提升一下自己。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90613
评论列表(1条)
赞~内容上虽然不多,但有自己的思考点在里面~还是不错的,继续加油~