每天一個linux命令(18):at命令

at [-V] [-q queue] [-f file] [-mMlbv] TIME

at [-V] [-q queue] [-f file] [-mMlbv] –t time_arg

at –c job[ job…]

at [-rd] job[ job…]

atq [-V] [-q queue]

atrm [-V] job[ job…]

batch

(1).說明

  注意:at一般是臨時任務,crontab一般是週期性任務,但都是計劃任務的一種。

  at和batch讀取標準輸入或一個指定文件,它們將會在稍後被執行。

  at在指定的時間執行命令。

  atq列出用戶待處理作業(jobs),如果是超級用戶,所有用戶的(待處理)作業都將被列出。輸出格式:作業號、日期、小時、隊列和用戶名。

  atrm刪除作業,由作業號標識。

  batch 當系統負載級別允許時執行命令;換句話說,當負載平均值降至0.8以下時,或者在atd中調用指定的值。

  at允許複雜的時間規範,擴展POSIX.2標準。它接受HH:MM形式的時間在一天的特定時間允許一項工作。如果時間已經過去,則假定是第二天。你也可以指定midnight午夜、noon中午或teatime下午茶時間(4PM),並且你可以使用AM、PM來表達允許時間的上午和下午。你還可以表明作業在哪一天運行,通過給出一個形式上有月份名稱和任意的年份的日期,或給出形式爲MMDDYY、MM/DD/YY、DD.MM.YY、YYYY-MM-DD的日期。日期規格必須遵循一天的時間規格。你也可以給出now + count time-units(時間單位)的時間,時間單位可以是minutes(分鐘)、hours(小時)、days(天)或weeks(星期),並且你能通過添加today或tomorrow後綴來告訴at命令今天或明天運行作業。

  例如:從現在起三天後的下午四點運行作業at 4pm + 3 days;在July 31上午十點運行作業at 10am July 31;明天上午一點運行作業at 1am tomorrow。

  注意:at類命令的服務名叫atd

(2).選項

1

2

3

4

5

6

7

8

9

10

11

-V 打印版本信息

-q queue 使用指定的隊列。隊列名稱由單個字母組成,有效隊列名稱範圍從a到z和A到Z。at默認a隊列,batch默認b隊列。具有較高字母的隊列運行良好。特殊隊列“=”爲正在運行的作業保留。如果作業提交給大寫字母指定的隊列,則該作業被視爲在作業時提交給batch。一旦時間到達批處理規則將應用於負載平衡使用中。如果atq被賦予指定隊列,它將只顯示該隊列的待處理作業。

-m 即使沒有輸出也會在作業完成後向用戶發出郵件。

-M 不發送郵件給用戶

-f file從文件讀取而不是標準輸出

-l atq的別名

-r atrm的別名

-d atrm的別名

-v 顯示在讀取作業前作業執行的時間。顯示時間格式樣例“The Feb 20 14:50:00 1997”

-c 將命令行中列出的作業標記爲標準輸出

-t time_arg 提交time_arg參數指定作業運行時間,格式[[CC]YY] MMDDhhmm

(3).實例

使用相對時間執行命令

1

2

3

4

5

6

7

8

[ root@CentOS6 桌面 ]# ls

[ root@CentOS6 桌面 ]# at now +1 minutes

at> echo "at now +1 minutes">1.txt   //不知道默認保存在哪裏,只能自己設置一個

at> <EOT>                  //Ctrl+d會直接打出<EOT>

job 4 at 2018-07-21 11:22

[ root@CentOS6 桌面 ]# ls

1.txt

[ root@CentOS6 桌面 ]# vim 1.txt    //進入到1.txt裏可以看到輸出內容

使用絕對時間執行命令

1

2

3

4

[ root@CentOS6 桌面 ]# at 12:00

at> ls />2.txt

at> <EOT>

job 5 at 2018-07-21 12:00

查看待處理的作業,並刪除無用的作業

1

2

3

4

5

[ root@CentOS6 桌面 ]# atq   //查看待處理的作業,也可以是at -l

5    2018-07-21 12:00 a root  //5任務編號,2018-07-21 12:00執行時間,a隊列,root執行者

[ root@CentOS6 桌面 ]# atrm 5  //刪除無用的作業

[ root@CentOS6 桌面 ]# atq

[ root@CentOS6 桌面 ]#

根據作業ID查看執行細節

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

[root@CentOS6 桌面]# at now +2 minutes

at> echo "at now +2 minutes">3.txt

at> job 6 at 2018-07-21 12:11

[root@CentOS6 桌面]# at -c 6

#!/bin/sh

# atrun uid=0 gid=0

# mail root 0

umask 22

ORBIT_SOCKETDIR=/tmp/orbit-root; export ORBIT_SOCKETDIR

HOSTNAME=CentOS6.8; export HOSTNAME

IMSETTINGS_INTEGRATE_DESKTOP=yes; export IMSETTINGS_INTEGRATE_DESKTOP

SHELL=/bin/bash; export SHELL

XDG_SESSION_COOKIE=f361f670c8f25b859941a16a00000017-1532137953.618455-100069161; export XDG_SESSION_COOKIE

HISTSIZE=1000; export HISTSIZE

GTK_RC_FILES=/etc/gtk/gtkrc:/root/.gtkrc-1.2-gnome2; export GTK_RC_FILES

WINDOWID=29360132; export WINDOWID

QTDIR=/usr/lib64/qt-3.3; export QTDIR

QTINC=/usr/lib64/qt-3.3/include; export QTINC

IMSETTINGS_MODULE=IBus; export IMSETTINGS_MODULE

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:\*.arj=01\;31:\*.taz=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lz=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.bz=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.rar=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=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:\*.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

SSH_AUTH_SOCK=/tmp/keyring-EG2luA/socket.ssh; export SSH_AUTH_SOCK

GNOME_KEYRING_SOCKET=/tmp/keyring-EG2luA/socket; export GNOME_KEYRING_SOCKET

SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/2251,unix/unix:/tmp/.ICE-unix/2251; export SESSION_MANAGER

USERNAME=root; export USERNAME

DESKTOP_SESSION=gnome; export DESKTOP_SESSION

MAIL=/var/spool/mail/root; export MAIL

PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin; export PATH

QT_IM_MODULE=ibus; export QT_IM_MODULE

PWD=/root/\�\�\�\�\�\�; export PWD

XMODIFIERS=@im=ibus; export XMODIFIERS

GDM_KEYBOARD_LAYOUT=us; export GDM_KEYBOARD_LAYOUT

LANG=zh_CN.UTF-8; export LANG

GNOME_KEYRING_PID=2241; export GNOME_KEYRING_PID

GDM_LANG=zh_CN.UTF-8; export GDM_LANG

GDMSESSION=gnome; export GDMSESSION

HISTCONTROL=ignoredups; export HISTCONTROL

SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass; export SSH_ASKPASS

SHLVL=2; export SHLVL

HOME=/root; export HOME

GNOME_DESKTOP_SESSION_ID=this-is-deprecated; export GNOME_DESKTOP_SESSION_ID

LOGNAME=root; export LOGNAME

CVS_RSH=ssh; export CVS_RSH

QTLIB=/usr/lib64/qt-3.3/lib; export QTLIB

DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-0ZCxugK00Z,guid=ca2e032461b953e455fa17300000006c; export DBUS_SESSION_BUS_ADDRESS

LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN

WINDOWPATH=1; export WINDOWPATH

G_BROKEN_FILENAMES=1; export G_BROKEN_FILENAMES

XAUTHORITY=/var/run/gdm/auth-for-root-mLJQsO/database; export XAUTHORITY

COLORTERM=gnome-terminal; export COLORTERM

cd /root/\�\�\�\�\�\� || {

    echo 'Execution directory inaccessible' >&2

    exit 1

}

${SHELL:-/bin/sh} << 'marcinDELIMITER09c0b95e'

echo "at now +2 minutes">3.txt

 

marcinDELIMITER09c0b95e

  說明:at命令尚未執行的任務都存在/var/spool/at/目錄下,也可以直接查看該文件。

(4).at的特殊寫法

at 20:00 2008-10-1  在具體時間執行

at now +10min  在十分鐘後執行

at 17:00 tomorrow  明天下午五點執行

at 6:00 pm + 3 days  在3天后下午6點執行

at 23:00 < a.txt  將a.txt導入

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章