at & crontab命令

at命令

功能
    at命令用于執行未來某個時間點的某一次任務,任務的執行結果為以郵件的形式發送給用戶

命令格式
    at [OPTION] TIME

常用選項[OPTION]
    -l 查看等待運行的任務
    atq 命令也可用戶查看等待運行的任務
    -f /path/from/file 從指定文件中讀取作業任務,而不再交互式輸入
    -d # 刪除指定的作業任務
    -c 查看指定作業的具體內容
    -q QUEUE 指明隊列

TIME
    HH:MM[YYYY-mm-dd]
    noon,mdinight,teatime(下午4點)
    tomorrow
    now+#(minutes,hours,days,weeks)


使用示例

 一分鐘之后執行mkdir /test
[root@localhost ~]# at now+1minutes
at> mkdir /test
at> <EOT>
job 6 at Mon Jun 11 13:39:00 2018

查看等待運行的作業
[root@localhost ~]# at -l
8    Mon Jun 11 13:50:00 2018 a root
[root@localhost ~]# atq
8    Mon Jun 11 13:50:00 2018 a root

查看作業的具體內容
[root@localhost ~]# at -c 8
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22
XDG_SESSION_ID=1235; export XDG_SESSION_ID
HOSTNAME=localhost.localdomain; export HOSTNAME
SHELL=/bin/bash; export SHELL
HISTSIZE=1000; export HISTSIZE
SSH_CLIENT=192.168.1.102\ 57385\ 22; export SSH_CLIENT
SSH_TTY=/dev/pts/0; export SSH_TTY
USER=root; export USER
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:; export LS_COLORS
MAIL=/var/spool/mail/root; export MAIL
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH
PWD=/root; export PWD
LANG=en_US.UTF-8; export LANG
HISTCONTROL=ignoredups; export HISTCONTROL
SHLVL=1; export SHLVL
HOME=/root; export HOME
LOGNAME=root; export LOGNAME
SSH_CONNECTION=192.168.1.102\ 57385\ 192.168.1.107\ 22; export SSH_CONNECTION
LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
XDG_RUNTIME_DIR=/run/user/0; export XDG_RUNTIME_DIR
cd /root || {
     echo 'Execution directory inaccessible' >&2
     exit 1
}
${SHELL:-/bin/sh} << 'marcinDELIMITER50548e49'
mkdir /test

marcinDELIMITER50548e49


刪除指定的作業
[root@localhost ~]# at -d 8

crontab命令

功能
    用于設定系統中周期性執行的任務計劃,任務計劃分為兩類

    系統cron任務:
        主要用于實現系統自身維護,配置系統cron任務需要手動編輯:/etc/crontab文件
    用戶cron任務:
        用于實現各用戶的cron任務,用crontab命令實現


系統cron任務配置文件  /etc/crontab
        SHELL=/bin/bash
        PATH=/sbin:/bin:/usr/sbin:/usr/bin
        MAILTO=root

        # For details see man 4 crontabs

        # Example of job definition:
        # .---------------- minute (0 - 59)
        # |  .------------- hour (0 - 23)
        # |  |  .---------- day of month (1 - 31)
        # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
        # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
        # |  |  |  |  |
        # *  *  *  *  * user-name  command to be executed

    注意:
        每一行定義一個周期性任務
        *  *  *  *  * :定義周期性時間
        user-name    :運行周期性任務的用戶
        command to be executed :定義任務
        此處的環境變量不同于用戶登錄后獲得的環境變量,因此,建議使用命令的絕對路徑.
        執行結果郵件發送給MAILTO指定的用戶    


用戶cron配置文件  /var/spool/cron/USERNAME
        SHELL=/bin/bash
        PATH=/sbin:/bin:/usr/sbin:/usr/bin
        MAILTO=root

        # For details see man 4 crontabs

        # Example of job definition:
        # .---------------- minute (0 - 59)
        # |  .------------- hour (0 - 23)
        # |  |  .---------- day of month (1 - 31)
        # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
        # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
        # |  |  |  |  |
        # *  *  *  *  *  command to be executed


時間表示法
    1,特定值
        給定時間點有效取值范圍內的值
        注意:day of week 和day of month 一般不同時使用
    2,*
        給定時間點上有效取值范圍內的所有值:表“每”
    3,離散取值
        在時間點上使用逗號分隔的多個值
        #,#,#
    4,連續取值
        在時間點上使用-鏈接開頭和結束
        #-#
    5 在指定時間點上定義步長 /#
        */# #及步長

        注意:給定的時間不能被步長整除時,其意義將不復存在

    示例
        3 * * * * 每小時執行一次,每小時的第3分鐘
        3 4 * * 5 每周執行一次,每周5的4點3分
        5 6 7 * * 每月執行一次,每月的7號6點5分
        7 8 9 10 * 每年執行一次,每年的10月9號8點7分
        9 8 * * 3,7 每周三周日8點9分
        6 8,20 * * 3,7 每周三周日的8點和20點
        0 9-18 * * 1-5 周一到周五的9點到18點
        */5 * * * * 每4分鐘執行一次某任務

命令格式

    crontab [-u user] [-l | -r | -e] [-i] [-s]
        -e 表示編輯任務
        -l 列出所有任務
        -r 移除所有任務,即刪除/var/spool/cron/USERNAME文件
        -i 在使用-r選項是提示用戶確認
        -u user   root用戶可為其他用戶管理計劃任務
    注意:定義COMMAND時,如果命令需要用到%,需要對其轉義,但放置于單引號中的%不用轉義
    運行結果以郵件形式通知當前用戶,如果拒絕接受郵件
        *  *  *  *  * COMMAND >/dev/null
        *  *  *  *  * COMMAND &>/dev/null


使用示例

    每周三凌晨三,五點10分執行某個腳本輸出當前時間,時間格式為2017-12-28 10:00:00
    [root@localhost ~]# crontab -e   
    10 3,5 * * 3  /usr/bin/date +%F\ %T

    [root@localhost ~]# crontab -l
    10 3,5 * * 3  /usr/bin/date +%F\ %T

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/100864

(0)
dyzhoudyzhou
上一篇 2018-06-11
下一篇 2018-06-12

相關推薦

  • nmcli team 網橋

    nmcli connection 命令行更改ip地址 nmcli connection add con-name home-eth3 ifname eth1 type ethernet ipv4.method auto connection.autoconnect yes 表示在 eth1網卡身上 上添加 名為home-eth3 自動獲取且下回自動開啟的 E…

    Linux筆記 2018-05-06
  • 文本處理——sed初步

    sed是一種流編輯器,它一次處理一行內容。
    處理時,把當前處理的行存儲在臨時緩沖區(pattern space),同時輸出到屏幕,接著用sed命令處理緩沖區中的內容,接著讀取下一行,這樣不斷重復,直到文件末尾。

    Linux筆記 2018-04-20
  • 計算機的基礎

    基礎知識

    2018-07-23
  • LINUX防火墻

    防火墻的分類 systemctl stop firewalld.service :service iptables stop 關閉本機的防火墻并不意味者將防火墻禁用了,只是禁用系統默認的防火墻設置,自己可以再重新配置防火墻策略。   主機防火墻:服務范圍為當前主機 網絡防火墻:服務范圍為防火墻一側的局域網 硬件防火墻:在專用硬件級別實現部分功能的防…

    Linux筆記 2018-06-28
  • 系統啟動和內核管理之系統啟動實驗

    本文主要記錄:內核文件損壞導致系統無法啟動的修復過程

    2018-05-07
  • Blog Day 0:Linux運維學習方法論漫談

    By:Alvin Lin
    No:M30-43
    Date:2018-03-26

    Linux筆記 2018-03-26
欧美性久久久久