编程技术分享平台

网站首页 > 技术教程 正文

Linux系统下超cool的定时任务(linux定时任务设置方法)

xnh888 2024-11-17 03:23:18 技术教程 19 ℃ 0 评论

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脚本那样以#号开头写上注释信息,这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。

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

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


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表