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 20:35
下一篇 2018-06-12 00:44

相關推薦

  • 計算機及Linux基礎知識

    1、描述計算機的組成及其功能 根據馮諾依曼體系結構,計算機由運算器、存儲器、控制器、輸入設備和輸出設備五個基本部件組成,其中運算器和控制器合稱為中央處理器(CPU)。 各基本部件的功能是: 存儲器用于存放指令和數據; 控制器控制指令自動執行; 運算器進行加、減、乘、除四種基本算術運算以及邏輯運算和附加運算;輸入輸出設備通過和主機進行通信,完成人機數據交互。 …

    2018-06-23
  • 計算機原理與Linux基礎

    計算機的組成及功能 1、其實計算機的組織分為內部設備和外部設備, 內部設備: ? ? ? ? CPU:運算器、寄存器、緩存 ? ? ? ? 存儲器:內存,RAM(Random Access Memory) ? ? ? ? 控制器:控制器是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊地進行操作及處理。 外部…

    Linux筆記 2018-05-13
  • fff

    Linux筆記 2018-04-08
  • linux操作系統啟動流程 & grub簡述

    linux操作系統啟動流程 & grub簡述

    Linux筆記 2018-06-03
  • shell筆記

    在學習的時候整理的零散筆記

    Linux筆記 2018-04-14
欧美性久久久久