美文网首页
crontab定时任务

crontab定时任务

作者: pubalabala | 来源:发表于2019-04-11 11:39 被阅读0次

使用crontab部署定时任务

  1. 什么是Crontab?
    Crontab命令是Unix系统和类Unix系统中,用来设置周期性执行的指令。该命令从标准输入设备读取指令,并将其存放在“Crontab”文件中,以供后期读取和执行。Crontab所存的指令,被守护进程激活。crond常常在后台运行,以一分钟为间隔检查是否有预定的作业需要执行,这类作业一般成为cron jobs。

  2. 打开Ubuntu中的crontab功能
    在Ubuntu中,crontab功能默认是关闭的,需要我们自己打开。
    sudo vim /etc/rsyslog.d/50-default.conf

    #  Default rules for rsyslog.
    #
    #            For more information see rsyslog.conf(5) and /etc/rsyslog.conf
    
    #
    # First some standard log files.  Log by facility.
    #
    auth,authpriv.*          /var/log/auth.log
    *.*;auth,authpriv.none       -/var/log/syslog
    cron.*               /var/log/cron.log
    #daemon.*            -/var/log/daemon.log
    kern.*               -/var/log/kern.log
    #lpr.*               -/var/log/lpr.log
    mail.*               -/var/log/mail.log
    #user.*              -/var/log/user.log
    
    #
    # Logging for the mail system.  Split it up so that
    # it is easy to write scripts to parse these files.
    #
    #mail.info           -/var/log/mail.info
    #mail.warn           -/var/log/mail.warn
    mail.err         /var/log/mail.err
    
    #
    # Some "catch-all" log files.
    #
    #*.=debug;\
    #    auth,authpriv.none;\
    #    news.none;mail.none -/var/log/debug
    #*.=info;*.=notice;*.=warn;\
    #    auth,authpriv.none;\
    #    cron,daemon.none;\
    #    mail,news.none      -/var/log/messages
    
    #
    # Emergencies are sent to everybody logged in.
    #
    *.emerg              :omusrmsg:*
    
    #
    # I like to have messages displayed on the console, but only on a virtual
    # console I usually leave idle.
    #
    #daemon,mail.*;\
    #    news.=crit;news.=err;news.=notice;\
    #    *.=debug;*.=info;\
    #    *.=notice;*.=warn   /dev/tty8
    

    将cron.*               /var/log/cron.log 取消注释

    然后重启系统服务,使改动生效: sudo service syslog restart

  3. 添加定时任务

    • 首先创建自己的脚本文件并依次写入需要执行的命令

    • 使用crontab -e命令来打开当前命令所属的crontab文件,如涉及root用户权限请使用sudo crontab -e

    • 第一次使用该命令会让你选择编辑器,我选择2使用vim

    • 打开文件后在最后一行添加crontab命令,例如:0 0 * * * sh ~/mysh.sh(需要执行的脚本文件路径)

    命令需要执行的脚本文件一定要使用绝对路径

    • crontab命令格式


      crontab命令格式
    • 例如:
      */1 * * * * 每分钟执行一次
      0 * * * * 每小时执行一次
      0 0 * * * 每天执行一次
      0 0 * * 0 每周执行一次
      0 0 1 * * 每月执行一次
      0 0 1 1 * 每年执行一次

    • 最后重启cron服务: sudo service cron restart

  4. 定时执行scrapy项目实战
    脚本的逻辑就是先进去到爬虫所在的文件夹然后执行scrapy crawl yourSpider(你的爬虫的名称)
    有个注意点就是scrapy在脚本中要写它的绝对路径,通过命令which scrapy来获取路径

    1. 编写脚本文件: vim /home/timedtasks/my_spider.sh
    cd /home/project/test_scrapy/test_scrapy/spider
    /home/anaconda3/envs/test_env/bin/scrapy crawl test_spider
    
    1. 添加定时任务: sudo contab -e
      在最后一行添加任务: 0 13 * * * sh /home/timedtasks/my_spider.sh
      保存并退出esc :wq

    2. 重启cron服服务: sudo service cron restart
      完成!

相关文章

  • crondtab 定时任务

    编辑定时任务 crontab -e 查看定时任务 crontab -l 删除定时任务 crontab -r 如:*...

  • linux crontab: 定时任务

    参考 crontab 定时任务 Linux之crontab定时任务

  • crond任务调度(定时任务调度)

    基本语法crontab [选项]选项-e : 编辑crontab定时任务-l : 查询crontab定时任务...

  • linux Crontab

    Linux Crontab:Linux中用于执行定时任务的工具crontab -e:编辑定时任务crontab -...

  • Linux定时任务Crontab

    定时任务服务提供crontab命令来设定任务 定时任务命令: 定时任务服务提供crontab命令来设定任务 cro...

  • Crontab

    crontab命令: crontab定时任务: example:

  • 常用的linux命令

    ①定时任务管理: crontab –l 查看定时任务 crontab -e 编辑定时任务 ②查看实时日志: tai...

  • Linux_315_Ansible模块之定时任务管理

    crond服务,定时任务服务crontab -l 查看定时任务crontab -e 添加定时任务 /usr/bin...

  • Linux定时任务

    Linux定时任务 centOS: 使用crontab -e //编辑 crontab -l //查看定时任务 生...

  • crontab

    定时任务: crontab crontab -l 列出全部任务 cronta...

网友评论

      本文标题:crontab定时任务

      本文链接:https://www.haomeiwen.com/subject/otnziqtx.html