zoukankan      html  css  js  c++  java
  • linux设置定时任务

    很久没发博客了,说明自己这三四个月确实没怎么积累学习成果了(或者说都是学习比较零散的新知识不足以写成博客)。因为12月份找到了毕业那份工作之后就开始闲下来了,过完年出来正在做一个软件开发的实习(做个搬砖临时工挣个三餐,顺便不想呆在学校宿舍堕落地等待毕业),最近才开始积累些学习成果。最近在做shell脚本的开发,涉及到linux设置定时任务的问题。

    1.用crontab/cron命令,可以man一下crontab的用法。

    crontab -e : 编辑定时任务,格式如下:

    minute hour day-of-month month-of-year day-of-week commands    

    使用星号*表示任一时间/所有时间,举例:

    */5 * * * * echo "Hello"

    这句定时任务表示每5分钟echo一次"Hello",/5 的作用就表示每5(分钟)。echo输出的内容并不出输出到命令行中,可以将其重定向到文件当中:

    echo "Hello" /home/admi/test.log

    更多crontab详细写法网搜。


    command自然可以是执行一个脚本:

    * * * * * /home/admi/test.sh
    这句定时任务表示每分钟执行一遍test.sh脚本,更复杂的定时任务就应该以这样形式,先写在脚本上,然后定时去执行这个脚本(注意要提前给它可执行权限)。


    2.定时任务之发邮件
    可以直接在crontab -e 指定邮件地址,使用 MAILTO关键字修改发邮件地址,如:

    MAILTO=hello@email.com

    然后每次执行定时任务之后都会将结果发送给该邮件地址。
    另一种方法是在shell脚本里面用mail关键字,mail是使用sendmail服务的,貌似要先安装sendmail服务,自行网搜。mail用法如下:
    mail -s "This is subject" -c "hello@email.com haha@email.com" hi@email.com < /home/admi/test.log

    -s参数后面跟的是邮件的主题;-c参数接的是抄送的地址,如果有多个抄送地址则要用双引号引起来,当然-c这个参数可以不要;往后hi@email.com是主邮件地址;再往后接的是邮件正文,你可以直接随便打一些字符串上去,也可以像上面那样用" < /home/admi/test.log "表示将test.log文件里面的内容当作正文发邮件出去。

    更详细用法网搜。


    貌似mutt发邮件更强大?今天试了下mail命令-a参数的附件功能,一直卡住发不出去邮件,不知啥原因,用mutt也是-a参数发带附件的邮件一下子就好了,貌似mutt快捷?附一个mutt的使用方法链接: linux shell发送带附件的邮件


  • 相关阅读:
    使用Beetle实现http代理服务
    Socket Tcp服务吞吐测试工具
    实现高性能稳定的socket tcp通讯经验分享
    Silverlight自定义按钮模板
    值得研究的 工作流 开源项目
    值得研究的 开源数据库
    值得研究的 创建PDF 组件
    值得研究的 开源图形引擎
    通用的NTier模型合理么?
    值得研究的 RSS阅读器
  • 原文地址:https://www.cnblogs.com/lvlang/p/10586356.html
Copyright © 2011-2022 走看看