crontab -e(Linux系统下超cool的定时任务)

Linux系统有很多炫酷的操作,只要掌握这些操作,有时候可以节省大量的时间,提高效率。如果不会使用这些,那么就得设置好闹钟,半夜爬起来,开启,登录服务器,运行脚本,退出,关机,睡觉,失眠……

例如以下工作场景:

场景一:服务器在白天使用的人数较多,资源比较紧张,需要将任务放到晚上开始执行,例如夜里1点钟;

场景二:每月对下载的nt库进行一下同步,保持最新的状态;

at一次性定时任务

at命令可以完成一次性的定时任务,顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求。例如上面的场景一就可以使用at命令实现这种功能。at的使用也非常简单,只需要写成“at 时间”的形式就可以。

# 敲at命令,设置时间,然后输入要执行的任务
$ at 00:05
> nohup sh spades.sh &
#ctrl+D 退出
  • at -l :查看已设置好但还未执行的一次性计划任务;

  • atrm : 要想将其删除,可以用“atrm 任务序号”;

也可以使用管道一次性写好任务。让at命令接收前面echo命令的输出信息,以达到通过非交互式的方式创建计划一次性任务的目的。

echo "nohup sh spades.sh &" | at 00:05

crontab周期性定时任务

at命令适合一次性的任务,对于那种周期性的任务,例如上面的应用场景二,Linux为我们提供了crontab命令。这条命令的使用也非常简单。无论是管理员还是普通用户都可以使用。

  • crontab -e :创建、编辑计划任务;

  • crontab -r:删除某条计划任务;

  • crontab -l:查看当前计划任务;

  • crontab -u:管理员使用,可以编辑普通用户的定时任务;

crontab的语法也比较容易,敲crontab -e就会自动调用vim打开编辑窗口。依然一次输入“分、时、日、月、星期 命令”。这是使用crond服务设置任务的参数格式,缺一不可。如果有些字段没有设置,则需要使用星号(*)占位。

应用场景二:每月自动同步nt库。

#每月1号,3:15分,自动同步nt库
$ crontab -e
15 03 1 * * /usr/bin/rsync -avzP rsync://ftp.ncbi.nlm.nih.gov:/blast/db/FASTA/nt.gz nt.gz

注意事项:

  • 在crond服务的配置参数中,可以像Shell脚本那样以#号开头写上注释信息,这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。

    crontab

  • 计划任务中的“分”字段必须有数值,绝对不能为空或是*号;

  • “日”和“星期”字段不能同时使用,否则就会发生冲突。


您可以还会对下面的文章感兴趣

最新评论

  1. 因帅入狱
    因帅入狱
    发布于:2022-04-27 10:13:16 回复TA
    开始执行,例如夜里1点钟;场景二:每月对下载的nt库进行一下同步,保持最新的状态;at一次性定时任务 at命令可以完成一次性的定时任务,顾名思义,一次性计划任务只执行一次,一般用于满足临时的工作需求。例如上面的场景一就可以使用at命令实现这种功能。at的使用也非常简单,只需要
  1. 凉凉春风
    凉凉春风
    发布于:2022-04-27 11:24:28 回复TA
    Linux系统有很多炫酷的操作,只要掌握这些操作,有时候可以节省大量的时间,提高效率。如果不会使用这些,那么就得设置好闹钟,半夜爬起来,开启,登录服务器,运行脚本,退出,关机,睡觉,失眠…
  1. 鲁枝琰静
    鲁枝琰静
    发布于:2022-04-27 09:57:23 回复TA
    生活以成败论英雄,所以必须做强者。要想成大器,就容不得胆小怕事。路再远,再荆棘满途,只要去走,勇敢的披荆斩棘,就必须能走到目的地。
  1. 轩辕春盛飞
    轩辕春盛飞
    发布于:2022-04-27 09:57:23 回复TA
    让理智牵着我的手,然后跟着感觉走。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友