计划任务

未来的某时间点执行一次性任务:
at [选项] TIME
   -l 查看计划任务
   -c # 查看任务具体内容
   -d # 删除任务
   -f 从文件读取任务
   -m 执行完发邮件确认

执行方式:
1)交互式    2)输入重定向    3)at -f 文件

依赖于atd服务,需要启动才能实现at任务
at队列存放在/var/spool/at目录中

/etc/at.{deny,allow}控制用户是否能执行at任务 
    白名单:/etc/at.allow    默认不存在,只有该文件中的用户才能执行at命令,优先级比deny高
    黑名单:/etc/at.deny    默认存在,拒绝该文件中用户执行at命令,而没有在at.deny文件中的使用者则可执行
    如果两个文件都不存在,只有root可以执行at命令


例子1:五分钟后重启
at now +5 minutes reboot

例子2:创建计划任务脚本
#!/bin/bash
at 18:00 <<EOF
echo abc
wall shut
EOF

系统自行选择空闲时间去执行此处指定的任务
batch


周期性任务cron
1.每个用户都有专用的cron任务文件:    /var/spool/cron/USERNAME (root:/etc/crontab)
2.没有被重定向的输出会被邮寄给用户
3.根用户能够修改其他用户的任务
4.对于cron任务来讲,%有特殊用途;如果在命令中药使用%,则需要转义,将%放置于单引号中
5.计划任务历史记录    /var/log/cron

/etc/cron.{allow,deny}  用户黑/白名单
allow优先级比deny高,allow文件创建后,deny文件内容无效
黑白名单不影响现在计划任务

crontab -l 列出任务
        -e 编辑任务
        -r 删除所有任务
    -i 同“-r”一同使用,以交互式模式移除指定任务
        -u user 仅root可运行,指定用户管理cron任务
        -f 
@reboot     每次登陆系统后执行
@yearly     每年1月1号
@annually   每年1月1号
@monthly    每月1号
@weekly     每周日
@daily      每天0点
@hourly     每分钟

例子1::晚上9点10分运行echo命令
10 21 * * * root echo "hello" &> /dev/null       root用户创建,需要指定用户名
10 21 * * * echo "hello" &> /dev/null         普通用户创建,不需要指定用户名


例子2:每10分钟检查磁盘分区利用率,大于80就报警
一、创建脚本/data/checkdisk.sh
DISKSPACE='df | grep "^/dev/sd" |sed -r "s@.*[ ]+([0-9]{1,3})%.*@\1@" | sort -nr |head -n1'
DISKINODE='df -i | grep "^/dev/sd" |sed -r "s@.*[ ]+([0-9]{1,3})%.*@\1@" | sort -nr |head -n1'

["$DISKSPACE" -gt 80 -o "$DISKINODE" -gt 80 ] && echo "disk will be full"

二、创建计划任务/etc/crontab
*/10 * * * * root /data/checkdisk.sh


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金牌收租佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值