Linux 基础 - 计划任务

Linux 计划任务

单一时刻执行一次的任务:at

如果没有 at 命令

[root@localhost ~]# yum -y install at

创建计划任务

[root@localhost ~]# at now + 30 minutes
at> poweroff
at> <EOT>
job 1 at Fri Sep 25 13:53:00 2020
  • 第一行是创建 30 分钟之后执行的任务

  • 第二行是执行关机命令

  • 第三行是按了 Ctrl + D 代表结束

  • 第四行是系统输出的 代表一个任务将会被执行

atq 查看计划任务

[root@localhost ~]# atq
1       Fri Sep 25 13:53:00 2020 a root

atrm 删除计划任务

[root@localhost ~]# atrm 1
[root@localhost ~]# atq
[root@localhost ~]#

也可以安排具体时间

[root@localhost ~]# at 00:00 2020-09-26
at> poweroff
at> <EOT>
job 2 at Sat Sep 26 00:00:00 2020
[root@localhost ~]# atq
2       Sat Sep 26 00:00:00 2020 a root

/etc/at.deny 用户黑名单 里面的用户无法使用 at

周期性执行任务:cron

[root@localhost ~]# service crond status
Redirecting to /bin/systemctl status crond.service
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2020-09-25 08:34:09 CST; 4h 59min ago
 Main PID: 688 (crond)
   CGroup: /system.slice/crond.service
           └─688 /usr/sbin/crond -n

9月 25 08:34:09 localhost systemd[1]: Started Command Scheduler.
9月 25 08:34:09 localhost crond[688]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 0% if used.)
9月 25 08:34:10 localhost crond[688]: (CRON) INFO (running with inotify support)

首先要保证 crond 在运行 running

[root@localhost ~]# service crond status
Redirecting to /bin/systemctl status crond.service
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 五 2020-09-25 13:34:43 CST; 5s ago
  Process: 688 ExecStart=/usr/sbin/crond -n $CRONDARGS (code=exited, status=0/SUCCESS)
 Main PID: 688 (code=exited, status=0/SUCCESS)

9月 25 08:34:09 localhost systemd[1]: Started Command Scheduler.
9月 25 08:34:09 localhost crond[688]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 0% if used.)
9月 25 08:34:10 localhost crond[688]: (CRON) INFO (running with inotify support)
9月 25 13:34:43 localhost systemd[1]: Stopping Command Scheduler...
9月 25 13:34:43 localhost systemd[1]: Stopped Command Scheduler.

如果是 dead 则没在运行 需要手动开启一下

[root@localhost ~]# service crond start

通过 crontab 设置计划任务

  • 语法 * * * * * command

  • * 用来定义时间

  • 第一个 * 表示分钟 1~59

  • 第二个 * 表示小时 0~23

  • 第三个 * 表示日期 1~31

  • 第四个 * 表示月份 1~12

  • 第五个 * 表示星期 0~6,0 代表周日

  • 最后是执行的命令

[root@localhost ~]# crontab
* */1 * * * service nginx restart
[root@localhost ~]# crontab -l
* */1 * * * service nginx restart
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root

设置每小时 重启 nginx

-l 查看计划任务

-r 删除计划任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值