Linux 计划任务

一、一次性计划任务  at

Syntax:

#at <time>

> command line

> Ctrl + D to finish

at 3:15

at now + 2 minutes

eg.

[root@localhost ~]# at 1:47
at> whoami
job 6 at Sun Feb 14 01:47:00 2021
[root@localhost ~]# 

at -l 或atq
[root@localhost ~]# at -l
5    Mon Feb 15 00:57:00 2021 a root
6    Sun Feb 14 01:47:00 2021 a root

atrm jodid 

eg.

#atrm 6  #删除job6

二、周期性计划任务 crontab

由crond提供服务

常用参数

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

crontab -l   查看计划任务

crontab -r   删除某条计划任务

1)创建:crontab -e,进入编辑模式

注意: 所有命令需要用绝对路径执行,找不到可以用whereis, 例如 /usr/bin/tar -czvf backup.gz /home/wwwroot

crontat -e 进入编辑模式后注意事项:

如果要创建多条计划任务的语句,每行仅写一条

Syntax: 分 时 日 月 星期 命令

其中分、时必须设置,日与星期不能同时设置,可以用 * 代表一个参数占位, 可以用 - 作为时间范围连接符

eg. 每天凌晨2点清空/tmp 文件夹下所有内容

0 2 */1 * * /usr/bin/rm -rf /tmp/*

eg. 每周三到周五晚上2点重启一下服务器

0 2 * * 3-5  /usr/sbin/reboot 

 

脚本无法执行问题

如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。

解决方法:

  • 1、所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。

  • 2、在 shell 脚本开头使用以下代码:

    #!/bin/sh
    
    . /etc/profile
    . ~/.bash_profile

    3、在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效,例如:

    20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值