Linux命令行学习之路(七)——定时执行

对于一些命令我们并不是想让其马上执行,而是等待一定时间或者到某个时间再执行,我们需要怎么做?


at命令:延时执行一个程序(通过:apt-get install at 进行安装)

命令使用方法:

1、输入:at 【时间】  

这个时间可以是具体的时间,例如:at  15:32 12/1/15  意思是在2015年12月1日15点32分执行。又或者:at now +10 minutes 意思是在10分钟后执行

2、输入想要执行的命令,例如:mkdir text  意思是在刚刚输入的时间,在本目录下建立一个text目录

当建立完成后可以通过atq命令进行查看,还可以用 atrm【任务号】对任务进行删除


sleep命令:休息一下

本来在终端输入:touch a.txt  ; rm a.txt  会直接执行建立和删除

但是如果在中间加入了slee命令,则可以造成不同的效果

例如:touch a.txt  ;sleep 10min ; rm a.txt 意思是,建立a.txt文件,然后15分钟后删除



接下来说一下||&&三个逻辑符号

||符号表示:前面的命令执行失败,则后面的命令得以执行

&&符号表示:前面的命令执行成功,则后面的命令得以执行

:符号表示:无论前面是否执行成功,后面命令都可以执行


刚刚所说的at命令只是在具有延时执行一个命令的能力,下面说的这个命令将会无比强大,可以定时多次执行命令

crontab命令:定时执行程序

系统本身自带没有这个命令,需要安装之后使用

Ubuntu系列的系统输入:sudo apt-get install cron(安装)  service cron start (启动)

CentOS系列的系统输入:sudo yum install vixie-cron crontabs (安装)  service crond start (启动)

:这里如果想用nano编译器来配置crontab命令的话,就输入:vim .bachrc  在最后一行输入 export EDITOR=nano(个人觉得vim就很好,没必要用nano)

重要参数:

-l:查看crontab文件,可以查看现在写好的crontab命令

-e:修改crontab文件,输入:crontab -e 就可以创建修改crontab文件

-r:删除crontab文件,个人建议不适用


废话了那么多,现在终于正式可以编辑crontab命令了,输入:crontab -e

最上面的第一行为:# m h  dom mon dow   command  (这个是命令格式,那么我们接下来一一解释一下)

【分钟】【小时】【几号】【几月】【星期几】【命令】

    0-59        0-23       1-31         1-12       1-7          命令

例如:15 12 * * * ls /home >> file.txt  意思是:每天12点15分列出/home下命令并输出到file.txt末尾

其中:

* (星号)代表任何时刻
,(逗号)代表分隔时候。如3点与6点 就是3,6 
-(减号)代表一段时间范围内。如:3点到6点 就是3-6 
/n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/5

如果需要执行的是.sh文件的话,输入:sh  【文件名】


希望这部分的总结对各位读者有一定的帮助,如有不对请指出纠正,谢谢!

你可能感兴趣的:(linux,命令)