美文网首页
centos 执行定时任务

centos 执行定时任务

作者: 梅村_9643 | 来源:发表于2021-03-22 19:40 被阅读0次

    //===============centos 定时任务=================

    yum -y update
    yum -y install cronie yum-cron
    //-------------------
    crontab任务配置基本格式:

    • *  *  *  *  command
      第1列表示分钟0~59 每分钟用 * 或者 */1 表示
      第2列表示小时0~23(0表示0点)
      第3列表示日期1~31
      第4列表示月份1~12
      第5列标识号星期0~6(0,7都可表示星期天)
      第6列要运行的命令或执行shell脚本
      //----------------------
      a、crontab -e,添加如下内容:
      */1 * * * * sh && echo "dd" >> /logs/cron-cc.log
      */1 * * * * sleep 30 && echo "cc" >> /logs/cron-cc.log

    b、重启crond
    systemctl reload crond
    systemctl restart crond

    c、查看当前用户定时任务
    crontab -l

    d、通过日志查看是否生效
    tail -f /logs/cron-cc.log
    //---------------------

    案例一:每隔10秒执行一次

    crontab设置的最小时间为每分钟,实现以秒为单位进行定时任务执行。
    */1 * * * * sh /root/shell/aa.sh
    */1 * * * * sleep 10 && sh /root/shell/aa.sh
    */1 * * * * sleep 20 && sh /root/shell/aa.sh
    */1 * * * * sleep 30 && sh /root/shell/aa.sh
    */1 * * * * sleep 40 && sh /root/shell/aa.sh
    */1 * * * * sleep 50 && sh /root/shell/aa.sh
    注意:aa.sh为执行脚本

    案例二:每隔20秒执行一次

    */1 * * * * sh /root/shell/aa.sh
    */1 * * * * sleep 20 && sh /root/shell/aa.sh
    */1 * * * * sleep 40 && sh /root/shell/aa.sh
    注意:aa.sh为执行脚本

    案例三:每隔5分钟执行一次

    */5 * * * * sh /root/shell/echo.sh

    // 每天凌晨1点执行
    0 1 * * * /home/testuser/test.sh
    //-----------------------------------------------

    查看当前用户定时任务

    crontab -l
    调用/var/spool/cron/目录下相关用户的定时任务信息

    查看定时任务日志
    tail -f /var/log/cron

    systemctl status crond.service
    systemctl start crond.service
    systemctl stop crond.service
    systemctl restart crond.service
    systemctl reload crond.service

    把cron服务加入linux开机自启动
    systemctl enable crond.service
    systemctl is-enabled crond.service

    crond后台的工作情况并过滤出来

    ps -ef |grep crond|grep -v grep
    //---------------------------------------------
    注意:
    路径问题
    有些脚本涉及到文件操作,文件路径不正确也会导致脚本无法正常执行,建议使用绝对路径,或者在执行脚本时,先进入该脚本的路径下,在执行。Crontab的command配置如下:
    */1 * * * * cd /root/shell && ./cron.sh

    备注

    centos中手动执行python脚本没问题,crontab中执行报错的解决方法

    1、执行env指令得到当前的用户环境变量。

    XDG_SESSION_ID=1850
    HOSTNAME=localhost.localdomain
    SELINUX_ROLE_REQUESTED=
    TERM=xterm
    SHELL=/bin/bash
    HISTSIZE=1000
    SSH_CLIENT=192.168.12.39 60607 22
    CONDA_SHLVL=1
    CONDA_PROMPT_MODIFIER=(base) 
    SELINUX_USE_CURRENT_RANGE=
    SSH_TTY=/dev/pts/1
    USER=root
    LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
    CONDA_EXE=/root/anaconda3/bin/conda
    _CE_CONDA=
    MAIL=/var/spool/mail/root
    PATH=/root/anaconda3/bin:/root/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    CONDA_PREFIX=/root/anaconda3
    PWD=/home/login
    LANG=zh_CN.UTF-8
    SELINUX_LEVEL_REQUESTED=
    _CE_M=
    HISTCONTROL=ignoredups
    SHLVL=1
    HOME=/root
    CONDA_PYTHON_EXE=/root/anaconda3/bin/python
    LOGNAME=root
    XDG_DATA_DIRS=/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
    SSH_CONNECTION=192.168.12.39 60607 192.168.12.60 22
    CONDA_DEFAULT_ENV=base
    LESSOPEN=||/usr/bin/lesspipe.sh %s
    XDG_RUNTIME_DIR=/run/user/0
    _=/usr/bin/env
    OLDPWD=/home
    

    2、将PATH环境变量添加到crontab的第一行,如下图所示。

    PATH=/root/anaconda3/bin:/root/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    */5 * * * * sh /home/login/EnterpircePermission_action.sh
    

    每个月的1号,11号,21号,31号,执行HTTP服务重启

    0 0 */10 * * /etc/init.d/apache2 restart

    相关文章

      网友评论

          本文标题:centos 执行定时任务

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