linux任务自动化 初步接触crontab和at

个人习惯比较散漫,以前积累的资料都很凌乱,而且大部分是野路子,慢慢的放到博客上吧,也算是 一个鉴证。
linux实现任务自动化大体可以分两类,系统初始化时运行和定时运行。对于定时运行linux自带了两种工具, crontabat

关于 crontab的介绍,有两篇比较靠谱的文章: 计划任务工具 cron 的配置和说明linux下实行计划任务
at
的介绍相对较少,稍微说下:
  1. 使用at.allow和at.deny进行访问控制,/etc/at.allow包括被授权访问的用户,/etc/at.deny包括不可使用at的用户。如果两个文件都不存在,只有超级用户可以使用。默认的at.deny是空白状态,也就是允许所有用户。
  2. 如何指定运行时间,很灵活,举几个简单的例子。
    at now                   立即运行
    at now + 2 minutes       2分钟后运行
    at 16:00                 当天下午4点运行
    at 16:00                 明天下午4点

  3. 提交任务的方式两种。
    // 指定文件提交
    $ at -f /root/bin/runme now + 5 hours

    // 标准输入提交
    $ at 23:40
    at> cd /tmp/perl
    at> make
    at> ls -al > tmp.log
    at> <Ctrl-d>


  4. 查看任务atqat -l等效,删除任务at -d 任务序号
碰到的问题,如果计划任务启动的脚本需要java环境支持:
  1. 可以在/etc/profile中设置JAVA_HOME等变量,这个脚本是全局的,在系统启动时会完全加载,/etc/bashrc优先级较低,JAVA_HOME设置在这对计划任务不起作用,因为crontab的运行是不需要console的。
  2. 可以在任务脚本中重新设置,前提你在/etc/bashrc中设置了环境变量
    $ source /etc/bashrc

  3. 计划任务需要界面支持的话,需要配置DISPLAY变量,附带一句废话,注意大小写。
    $ export DISPLAY=:1.0

    两种方式得到当前DISPLAY
    $ echo $DISPLAY
    $ printenv | fgrep DISPLAY


  4. 以上的环境变量应该都可在/etc/crontab中设置,能不能生效就需要自己尝试了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值