linuxat指令集
A. linux命令詳解之at
Linux下,有兩個命令可以用來作為計劃任務而執行,
要使用一次性任務計劃,linux必須要有負責這個計劃任務的服務,那就是atd服務
但是並非所有的linux distribution都默認會打開,我們需要手動激活愛聽的任務
如果服務未安裝,則需要手動安裝
#:yum install - y at 或 #:apt-get install at
如果擔心啟動是否執行OK的話,可使用命令查看:
#:ps aux |grep atd
或者使用
systemctl status atd
# 查閱一下 atd 目前的狀態,Active 狀態應是 running
使用 at 這個指令來產生所要運行的工作,並 將這個工作以文本文件的方式寫入 /var/spool/cron/atjobs/ 目錄內,該工作便能等待 atd 這個服務的取用與執行了。 不過,因為安全的理由,並不是所有的人都可以進行 at 工作調度!
at 的使用限制是利用 /etc/at.allow 與 /etc/at.deny 這兩個文件來進行的! 加上這兩個文件後,at 的工作情況其實是這樣的:
在一般的 distributions 當中,由於假設系統上的所有用戶都是可信任的,因此系統通常會保留一個空的 /etc/at.deny 文件,意思是允 許所有人使用 at 指令的意思 (您可以自行檢查一下該文件)。 不過,萬一你不希望有某些 使用者使用 at 的話,將那個使用者的帳號寫入 /etc/at.deny 即可! 一個帳號寫一行。
單一工作調度的進行就使用 at 這個指令!這個指令的運行非常簡單!將 at 加上一個時間即可!基本的語法如下:
事實上,當我們使用 at 時會進入一個 at shell 的環境來讓使用者下達工作指令,此時,建議 你最好使用絕對路徑來下達你的指令,比較不會有問題!由於指令的下達與 PATH 變數有關, 同時與當時的工作目錄也有關連 (如果有牽涉到文件的話),因此使用絕對路徑來下達 指令,會是比較一勞永逸的方法。 舉例來說,你在 /tmp 下達 at now 然後輸入 mail -s "test" root < .bashrc , 問一下,那個 .bashrc 的文件會是在哪裡?答案是 /tmp/.bashrc !因為 at 在運行時,會跑到當時下達 at 指令的那個工作目錄運行!
要注意的是,如果在 at shell 內的指令並沒有任何的訊息輸出,那麼 at 默認不會發 email 給執行者的。 如果你想要讓 at 無論如何都發一封 email 告知你是否執行了指令,那麼 可以使用「 at -m 時間格式 」來下達指令! at 就會傳送一個訊息給執行者,而不論該指令執行有無訊息輸出了!
如果要在某某時刻,在我的終端機顯示出 Hello 的字樣,可以通過終端機的設備來處理!假如你在 tty1 登陸(在命令行裡面輸入 tty 可以查看),則可以使用 echo "Hello" > /dev/tty1 。
at 有另外一個很棒的優點, 由於 at 工作調度的使用上,系統會將該項 at 工作獨立出你的 bash 環境中, 直接交給系統的 atd 程序來接管,因此,當你下達了 at 的工作之後就可以立刻離線了, 剩下的工作就完全交 給 Linux 管理即可!所以如果有長時間的網路工作時,使用 at 可以讓你免除網路斷線後的困擾。
其實 batch 是利用 at 來進行指令的下達!只是加入一些控制參數而已。這個 batch 神奇的地方在於:他會在 CPU 的工作負載小於 0.8 的時候,才進行你所下達的工作任務啦!
那什麼是工作負載 0.8 呢?這個工作負載的意思是: CPU 在單一時間點所負責的工作數量。不是CPU 的使用率喔! 舉例來說,如果我有一隻程序他需要一直使用 CPU 的運算功能,那麼此 時 CPU 的使用率可能到達 100% , 但是 CPU 的工作負載則是趨近於「 1 」,因為 CPU 僅負責一個工作!如果同時執行這樣的程序兩支呢? CPU 的使用率還是 100% ,但是工作負載 則變成 2 了! 所以也就是說,當 CPU 的工作負載越大,代表 CPU 必須要在不同的工作之間進行頻繁的工 作切換。 因為一直切換 工作,所以會導致系統忙碌啊! 系統如果很忙碌,還要額外進行 at ,不太合理!所以才有 batch 指令的產生!
下面來實驗一下 batch 好了!為了產生 CPU 較高的工作負載,我們用了 計算 pi 的腳本,連續執行 4 次這只程序, 來模擬高負載,然後看看batch 的工作現象。
使用 uptime 可以觀察到 1, 5, 15 分鍾的「平均工作負載」量,因為是平均值,所以當我們如上 表刪除掉四個工作後,工作負載不會立即降低, 需要一小段時間讓這個 1 分鍾平均值慢慢回 復到接近 0 啊!當小於 0.8 之後的「整分鍾時間」時,atd 就會將 batch 的工作執行掉了!
什麼是「整分鍾時間」呢?不論是 at 還是 crontab,他們最小的時間單位是「分 鍾」,所以,基本上,他們的工作是「每分鍾檢查一次」來處理的! 就是整分 (秒為 0 的時候),同時,你會發現其實 batch 也是使用 atq/atrm 來管理的!
B. 在linux上怎樣操作at at+cfun=1
1、常用操作
1.1 AT
命令解釋:檢測 Mole 與串口是否連通,能否接收 AT 命令;
命令格式:AT
命令返回:OK (與串口通信正常)
(無返回,與串口通信未連通)
測試結果:AT
OK
1.2 AT+CSQ
命令解釋:檢查網路信號強度
命令格式:AT+CSQ
命令返回:+CSQ: **,##
其中**應在 10 到 31 之間,數值越大表明信號質量越好,##為誤碼
率,值在 0 到 99 之間。
否則應檢查天線或 SIM 卡是否正確安裝
測試結果:AT+CSQ
+CSQ: 20,5
1.3 AT+CPIN?
命令解釋:檢查登入移動設備(ME)的密碼.
命令格式:AT+CPIN?
命令返回:+CPIN: 狀態
其中狀態值可能是:
READY(表示 SIM卡正常,同時不需要登入密碼),
SIM PIN (表示 ME等待提供 SIM卡的 PIN 碼)
SIM PUK (表示 ME等待提供 SIM卡的 PUK碼)
SIM PIN2 (表示 ME等待提供 SIM 卡的 PIN2 碼)
SIM PUK2 (表示 ME等待提供 SIM卡的 PUK2 碼)
PH-SIM PIN (表示設備被鎖 SIM卡,ME等待提供從手機到 SIM卡的密碼)
PH-NET PIN (表示設備被鎖網路,ME等待提供提供網路個性化密碼)
ERROR (表示 SIM卡失敗或沒有插入 SIM卡)
測試結果:AT+CPIN?
+CPIN: READY
表示SIM卡正常,同時不需要登入密碼。
1.4 AT+COPS?
命令解釋:查詢運營商選擇狀態.
命令格式:AT+COPS?
命令返回:+COPS: ,,
的值為0 到 4, 默認值是 0
的值為 0 到 2, 默認值是 2
的值為運營商代碼, 中國移動的代碼是 46000, 聯通的代碼是 46001
測試結果:AT+COPS? Tech-Link T&E Limited 常用 AT 命令手冊
- 2 -
+COPS: 0, 2, 46000
1.5 AT+WOPEN=2
命令解釋:查詢模塊支持 Open AT 的 Library 版本及是否有 Open AT Application 在模塊中.
命令格式:AT+ WOPEN=2
命令返回:+WOPEN: 2, 「 Open AT Library version」 ,」 Open AT Application version」
Open AT Library version 代表的是模塊支持 Open AT 的 Library 版本,通常顯示的
值為」 AT v04.1x」 或 」 AT v04.2x」
Open AT Application version 代表的是模塊支持 Open AT 的 Library 版本,通常顯
示的值為」 AT v04.1x」 或 」 AT v04.2x」
注: 「 Open AT Library version」 和」 Open AT Application version」 兩個值必須是一個
一致(除最後一位外),否則會導致 Open AT 程序不穩定.
如果返回值」 Open AT Application version」 中沒有數據,僅顯
示+WOPEN: 2,」 AT v04.10」 則表示模塊中沒有 Open AT Application 程序.
測試結果:AT+WOPEN=2
+WOPEN: 2,」 AT v04.10」 ,」 AT v04.11」
OK
1.6 AT+WOPEN=0
命令解釋:停止 Open AT Application 程序.
命令格式:AT+ WOPEN=0
命令返回:OK 或 ERROR
測試結果:AT+WOPEN=0
OK
1.7 AT+WOPEN=4
命令解釋:刪除 Open AT Application 程序.
命令格式:AT+ WOPEN=4
命令返回:OK 或 ERROR
測試結果:AT+WOPEN=4
OK
注: 刪除 Open AT Application 程序前,必須先使用 AT+WOPEN=0 停止 Open AT 程序.
1.8 AT+WOPEN=1
命令解釋:開啟 Open AT Application 程序.
命令格式:AT+ WOPEN=1
命令返回:OK 或 ERROR
測試結果:AT+WOPEN=1
OK
1.9 AT+WIPCFG=3
命令解釋:查詢 WIP 軟體版本.
命令格式:AT+ WIPCFG=3
命令返回: 或 ERROR
測試結果:AT+WIPCFG=3
WIP Soft v201 on Open AT OS v411
OK Tech-Link T&E Limited 常用 AT 命令手冊
- 3 -
注意: 使用 AT+WIPCFG=3 命令前,必須確保 Open AT 程序是開啟狀態(即 AT+WOPEN=1).
WIP Soft v201 代表 WIP 的軟體版本是 V201, on Open AT OS v411 代表前面 v201 的
WIP 軟體是基於 v411的 Opean AT 開發平台上開發的.
WIP 軟體就是TCP/IP 協議站
1.10 AT+CSCS?
命令解釋:查詢終端適配器(TE)的字元集.
命令格式:AT+ CSCS?
命令返回:<字元集編碼格式>
返回值通常是下列中的一項.
「 GSM」 ----- GSM預設符號集(參考 GSM 03.38 第 6.2.1 節).
「 PCCP437」 ---- PC字元集代碼頁 437.
「 CUSTOM」 ---- 用戶自定義.
「 HEX」 ---- 十六進制: (取值范圍:00 到 FF。比如:052FE6 表示 3 個 8bit 字
符,轉換為十進制,分別為 5、47、230,禁止轉換為 ME原始字元集).
測試結果:AT+CSCS?
+CSCS: 「 PCCP437」
OK
1.11 AT+CGSN
命令解釋:查詢模塊的 IMEI 號碼.
命令格式:AT+ CGSN
命令返回:
測試結果:AT+CGSN
012345678901234
OK
注意: 如果顯示 012345678901234 表示模塊沒有寫IMEI 號碼,有 IMEI 號碼的話
應該顯示是 35xxxxxxxx (共 15 位數字).
1.12 ATI7
命令解釋:查詢語音編碼特性
命令格式:ATI7
命令返回:SPEECH CODINGS: FR,EFR,HR,AMR
1.13 A TZ
命令解釋:恢復默認設置
命令格式:ATZ
命令返回:OK
1.14 AT+CGMR (此命令功能同等於 ATI3)
命令解釋:查詢模塊版本;
命令格式:AT+CGMR
命令返回:
+CMEERROR
測試結果:AT+CGMR
661_09gg.Q2686H 1925236 100506 11:13
OK Tech-Link T&E Limited 常用 AT 命令手冊
- 4 -
解釋:模塊的 Firmware 版本號為 661
1.15 AT+IPR
命令解釋:修改串口 1 波特率;
命令格式:AT+IPR=
命令返回:ERROR
OK
測試結果:AT+IPR=115200
OK
注意:串口波特率修改為 115200 後要把串口調試工具的波特率設為相應波
特率後模塊才會有返回.
1.16 AT&W
命令解釋:保存模塊設置;
命令格式:AT&W
命令返回:OK
ERROR(保存不成功)
測試結果:AT&W
OK
1.17 ;&W
命令解釋:連續保存命令
命令格式:ATxxx;&W (AT xxx 代表要設置的命令,緊跟;&W 表示執行此設置的
同時保存該設置)
命令返回:OK
例如要將模塊的波特率設置成 115200 並保存它,則可以直接按如下操作:
測試結果:AT+IPR=115200;&W
1.18 AT+CGMI
命令解釋:查詢模塊廠商的標識;
命令格式:AT+CGMI
命令返回:WAVECOM MODEM
測試結果:AT+CGMI
WAVECOM MODEM
1.19 AT+CGMM
命令解釋:獲取模塊支持的頻帶;
命令格式:AT+CGMM
命令返回:MULTIBAND 900E 1800
900E
1800
1900
G850
MULTIBAND G850 1900
測試結果:AT+CGMM
MULTIBAND 900E 1800 (表示模塊支持多頻帶,首選頻帶為 900E 1800)
Tech-Link T&E Limited 常用 AT 命令手冊
- 5 -
1.20 A/
命令解釋:重復上次命令;
命令格式:A/
命令返回:上一次 AT 命令返回的值
這命令重復前一個執行的命令
1.21 AT+CPOF
命令解釋:關機;這個特殊的命令可停止 GSM軟體堆棧和硬體層
命令格式:AT+CPOF
命令返回:OK
測試結果:AT+CPOF
OK
注: AT+CPOF用於停止 GSM軟體堆棧,這命令的功能與 AT+CFUN=0 相同,
執行 AT+CFUN=1即可重新運行 GSM軟體堆棧.
A T+CPOF=1用於停止 GSM硬體層,運行此命令後 AT 將失去回應,必需
對模塊進行硬體復位模塊方可重新工作.
C. Linux怎樣在某一特定時間執行命令(使用at」
簡介
at定時任務,指定一個時間執行一個任務,只能執行一次。需要安裝at服務,apt-get install at;
創建at任務
創建at任務方式有兩種,從文件輸入和從控制台輸入。以下分別用兩種方式創建1分鍾後將當前時間寫入 home/result 文件的命令
1、從文件輸入
附錄
1、at時間定義
at允許使用一套相當復雜的指定時間的方法。
1)能夠接受在當天的hh:mm(小時:分鍾)式的時間指定。假如該時間已過去,那麼就放在第二天執行。例如:04:00
2)能夠使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點)等比較模糊的詞語來指定時間。
3)能夠採用12小時計時制,即在時間後面加上AM(上午)或PM(下午)來說明是上午還是下午。例如:12pm
4)能夠指定命令執行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必須跟在指定時間的後面。例如:04:00 2009-03-1
5)能夠使用相對計時法。指定格式為:now + count time-units ,now就是當前時間,time-units是時間單位,這里能夠是minutes(分鍾)、hours(小時)、days(天)、weeks(星期)。count是時間的數量,幾天,幾小時。例如:now + 5 minutes 04pm + 3 days
6)能夠直接使用today(今天)、tomorrow(明天)來指定完成命令的時間。
D. 19. Linux的at定時任務調度
與crond不同的是,at任務調度是一次性的,而crond是重復性的
1.1 at命令是一次性定時計劃任務,at的守護進程atd會以後台模式運行,檢查作業隊列來運行
1.2 默認情況下,atd守護進程每60s檢查作業隊列,有作業時,會檢查作業運行時間,如果時間與當前時間匹配,則運行此作業
1.3 at命令是一次性定時計劃任務,執行完一個任務後就不再執行這個任務了
1.4 在使用at命令的時候,一定要保證atd進程的啟動,可以使用相關指令查看
ps -ef | grep atd 可以檢查atd是否在運行
at [選項] [時間]
按兩次 ctrl+d 結束at命令的輸入
4.1 當天的hh:mm(小時:分鍾),假如這個時間已經過去,那麼就第二天的這個時間執行。例如04:00
4.2 模糊的詞語,例如midnight、noon、teatime(下午茶時間,16:00左右)
4.3 採用12小時計時制,例如8am
4.4 指定執行命令的具體日期,格式為month dat(月 日)或者mm/dd/yy或者dd.mm.yy,指定的日期必須跟著寫在在指定時間的後面,例如:04:00 2021-3-1就是2021年3月1日凌晨4點整執行
4.5 相對計時法,指定格式為now + count time-units,now就是當前時間,time-units是時間單位,可以是minutes、hours、days、weeks。count是時間的數量,例如:now + 5 minutes
4.6 直接用today、tomorrow來指定完成命令的時間
5.1 2天後的下午5點,執行/bin/ls /home指令
at 5pm + 2 days 按回車鍵
然後寫下那個時刻要執行命令 /bin/ls /home
最後按兩次ctrl+d退出at指令
5.2 atq指令可以直接執行,查看系統中待執行的工作任務
5.3 明天17:00輸出時間到指定文件內 /root/date100.log
at 17:00 tomorrow 按回車鍵
date > /root/date100.log
按兩次ctrl+d退出at指令的輸入
5.4 2分鍾後
at now + 2 minutes
5.5 刪除已經設置的任務,atrm 編號
可以用atq列出待執行的任務,列出後第一列就是job編號
E. linux.at 命令怎麼用
一次性定時計劃任務的at命令的用法!
1.命令格式:
at[參數][時間]
2.命令功能:
在一個指定的時間執行一個指定任務,只能執行一次,且需要開啟atd進程(
ps -ef | grep atd查看, 開啟用/etc/init.d/atd start or restart; 開機即啟動則需要運行 chkconfig --level 2345 atd on)。
3.命令參數:
-m 當指定的任務被完成之後,將給用戶發送郵件,即使沒有標准輸出
-I atq的別名
-d atrm的別名
-v 顯示任務將被執行的時間
-c 列印任務的內容到標准輸出
-V 顯示版本信息
-q<列隊> 使用指定的列隊
-f<文件> 從指定文件讀入任務而不是從標准輸入讀入
-t<時間參數> 以時間參數的形式提交要運行的任務 《Linux就該這么學》
使用實例:
實例1:三天後的下午 5 點鍾執行 /bin/ls
命令:
at 5pm+3 days
輸出:
[root@localhost ~]# at 5pm+3 days
at> /bin/ls
at> <EOT>
job 7 at 2013-01-08 17:00
[root@localhost ~]#
說明:
實例2:明天17點鍾,輸出時間到指定文件內
命令:
at 17:20 tomorrow
輸出:
[root@localhost ~]# at 17:20 tomorrow
at> date >/root/2013.log
at> <EOT>
job 8 at 2013-01-06 17:20
F. linux中at命令
linux
at
命令詳解
使用方式
:
at
-V
[-q
queue]
[-f
file]
[-mldbv]
TIME
說明
:
at
可以讓使用者指定在
TIME
這個特定時刻執行某個程序或指令,TIME
的格式是
HH:MM其中的
HH
為小時,MM
為分鍾,甚至你也可以指定
am,
pm,
midnight,
noon,
teatime(就是下午
4
點鍾)等口語詞。
如果想要指定超過一天內的時間,則可以用
MMDDYY
或者
MM/DD/YY
的格式,其中
MM
是分鍾,DD
是第幾日,YY
是指年份。另外,使用者甚至也可以使用像是
now
+
時間間隔來彈性指定時間,其中的時間間隔可以是
minutes,
hours,
days,
weeks。
另外,使用者也可指定
today
或
tomorrow
來表示今天或明天。當指定了時間並按下
enter
之後,at
會進入交談模式並要求輸入指令或程序,當你輸入完後按下
ctrl+D
即可完成所有動作,至於執行的結果將會寄回你的帳號中。
參數
:
-V
:
印出版本編號
-q
:
使用指定的佇列(Queue)來儲存,at
的資料是存放在所謂的
queue
中,使用者可以同時使用多個
queue,而
queue
的編號為
a,
b,
c...
z
以及
A,
B,
...
Z
共
52
個
-m
:
即使程序/指令執行完成後沒有輸出結果,
也要寄封信給使用者
-f
file
:
讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案後再一次讀入
-l
:
列出所有的指定
(使用者也可以直接使用
atq
而不用
at
-l)
-d
:
刪除指定
(使用者也可以直接使用
atrm
而不用
at
-d)
-v
:
列出所有已經完成但尚未刪除的指定