Linux常用命令--時間與任務
時間日期
| 命令 | 說明 | 備注 |
|---|---|---|
| cal | 查看日歷(默認本月) | -3 近三個月的;-m 星期一作為第一天; -y當前年的日歷; 指定年份的日歷:cal 2020 |
| date | 顯示當前日期 | 以一定格式輸出 date "+%Y/%m/%d" ,-d 顯示字串時間 date -d "2020/11/30 19:11:40",-s 設定時間date -s "2020/11/30 19:11:40" |
日期格式字串串列
| 符號 | 說明 | 符號 | 說明 |
|---|---|---|---|
| %n | 下一行 | %t | 跳格 |
| %H | 小時(00-23) | %k | 小時(0-23) |
| %I(大寫i) | 小時(01-12) | %l (小寫L) | 小時(1-12) |
| %M | 分鐘(00-59) | %p | 顯示本地 AM 或 PM |
| %r | 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M) | %T | 直接顯示時間 (24 小時制) |
| %s | 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數 | %S | 秒(00-60) |
| %X | 相當于 %H:%M:%S | %Z | 顯示時區 |
| %a | 星期幾 (Sun-Sat) | %A | 星期幾 (Sunday-Saturday) |
| %b | 月份 (Jan-Dec) | %h | 同 %b |
| %c | 直接顯示日期與時間 | %D | 直接顯示日期 (mm/dd/yy) |
| %j | 一年中的第幾天 (001-366) | %w | 一周中的第幾天 (0-6) |
| %m | 月份 (01-12) | %B | 月份 (January-December) |
| %U | 一年中的第幾周 (00-53) (以 Sunday 為一周的第一天的情形) | %W | : 一年中的第幾周 (00-53) (以 Monday 為一周的第一天的情形) |
| %x | 直接顯示日期 (mm/dd/yy) | %d | 日 (01-31) |
| %y | 年份的最后兩位數字 (00.99) | %Y | 完整年份 (0000-9999) |
上述格式不必全都記住,只需要掌握幾個常用的即可,例如%Y表示年,%m表示月,%d表示日,%H表示小時,%M表示分鐘,%S表示秒,%s表示從 1970 年 1 月 1 日 :00:00 UTC 到目前為止的秒數,相當于time函式,%w表示一周中的第幾天,
定時任務
1 任務調度crond
任務調度:指定系統在某個時間執行的特定的命令或程式
任務調度分類:
- 系統作業:重要作業需要周而復始
- 個別用戶作業:某用戶希望執行的程式
| 命令 | 說明 | 備注 |
|---|---|---|
| crontab -e | 編輯定時任務 | -l 查詢定時任務; -r 洗掉當前用戶的所有定時任務 |
| service crond restart | 重啟任務調度 |
crond中以五個占位符表示時間(以空格隔開的),其含義:
| 占位符 | 說明 | 范圍 |
|---|---|---|
| 第一個 | 一小時中的第幾分鐘 | 0-59 |
| 第二個 | 一天中的第幾小時 | 0-23 |
| 第三個 | 一月中的第幾天 | 1-31 |
| 第四個 | 一年中的第幾個月 | 1-12 |
| 第五個 | 一周中的星期幾 | 0-7(0和7代表星期日) |
特殊字符的說明
| 字符 | 說明 |
|---|---|
| * | 任意時間 |
| , | 不連續的時間 |
| - | 連續時間 |
| */ | 每隔多長時間 |
占位符與上述字符結合,可以表示很多時間,比如這些例子:
45 22 * * * 每天22:45
0 17 * * 1 每周一的17:00
0 4 1,15 * * 1號或15號的4:00
40 4 * * 1-5 周一到周五的4:40
*/10 4 * * * 四點的每10分鐘(4:10、4:20......)
crond的使用方式
方式一:
1. 輸入crontab -e命令
2. 輸入任務(用的是vim):*/1 * * * * ls -l /etc/ > /tmp/to.txt==>表示每隔一分鐘將ls -l /etc/ 這個命令的結果重定向到/temp/to.txt
3. :wq保存退出
方式二:
1. 創建一個shell腳本檔案, 路徑為/home/lczmx/task.sh,內容如下:
bash date >> mycal cal >> mycal
2. 為腳本添加執行權限:chmod u+x /home/lczmx/task.sh
3. 輸入crontab -e命令
4. 輸入任務:*/1 * * * * /home/lczmx/task.sh
5. :wq保存退出
2 at定時任務
at命令:用于指定一次性的定時命令,
注意:at的守護行程atd會以后臺模式運行,每隔一段時間(60秒)檢查作業佇列來運行,所以使用at命令時,一定要保證atd行程的啟動,使用命令:ps -ef | grep atd查看(ps -ef: 檢測所有當前運行的行程),
at命令的選項
| 命令 | 說明 | 備注 |
|---|---|---|
| -m | 任務完成后給用戶發送郵件 | |
| -I | 列出任務佇列 | 可以使用別名atq |
| -d <編號> | 洗掉佇列中的任務 | 可以使用別名 可以使用別名atrm |
| -v | 顯示任務將被執行的時間 | |
| -q <佇列> | 使用指定佇列 | |
| -f <檔案> | 使用指定檔案讀入任務 |
指定時間
- hh:mm 小時:分鐘,如:06:00
- 12小時制,如:12pm
- 具體時間,格式:月 日、月 日 年、日.月.年,指定時間必須在指定日期后面,如:06:00 2020-12-3
- 相對時法,格式Now+time-units,time-units是時間單位,有minutes hours days weeks,如now + minutes (五分鐘后)
- 直接用today tomorrow
- 用midnight noon teatime(teatime是下午四點左右)
at命令的使用
- at 時間:
at 5pm + 2days(兩天后的下午5點執行) - 輸入要執行的命令或shell腳本:
/bin/ls /home - 連續兩次ctrl + D退出編輯界面
[lczmx@rH7-1 ~]$ at 5pm + 2days
at> /bin/ls /home
at> <EOT>
job 4 at Sat Dec 5 17:00:00 2020
[lczmx@rH7-1 ~]$
可以使用atq查看任務佇列,可以看到任務的編號、執行時間、創建人是誰,
[lczmx@rH7-1 ~]$ atq
4 Sat Dec 5 17:00:00 2020 a lczmx
我的github
我的博客
我的筆記
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/245927.html
標籤:其他
上一篇:Linux常用命令--檔案相關
下一篇:Linux常用命令--磁盤管理
