linux執行crontab
㈠ linux怎麼修改crontab
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
㈡ Linux下定時任務(系統任務調度、用戶任務調度)crontab使用詳解
crond是Linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計劃任務類似,在CentOS Linux release 7.2.1511中默認是開機啟動的,大家可以使用命令:systemctl status crond進行查看。 crond進程定期(每分鍾)檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。用戶在cron表
(也被稱為crontab文件)指定了定時任務,crontab也就是我們常見的定時任務設置命令。Linux下的任務調度分為兩類,系統任務調度和用戶任務調度。
系統任務調度 :系統周期性所要執行的工作,比如寫緩存數據到硬碟、日誌清理等。/etc/crontab文件就是系統任務調度的配置文件。
用戶任務調度 :用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用 crontab 工具來定製自己的計劃任務。所有用戶定義的crontab文件都被保存在/var/spool/cron目錄中。其文件名與用戶名一致,使用者許可權文件如下:
通過以上幫助信息,我們可以知道crond是執行任務計劃的一個守護進程。在使用crontab之前我們可以根據幫助信息來設置相關選項,一般情況下我們都使用默認值。
1.建立演示賬號crontab。
2.星號(*)使用舉例。
以上例子中完整演示了crontab從建立到執行的過程。「5 0 * * * echo "GeekDevOps"」表示在每天00:05執行命令:echo "GeekDevOps"。後面的星號表示只要前面條件滿足都執行。例子中的-u選項指定了用戶:crontab,-l選項列舉了相關用戶的用戶任務調度,不指定用戶則默認為root。執行結果默認寫入到用戶mail目錄下的相關文件中。
3.逗號(,)的使用舉例。
現在我們已經把用戶切換到crontab下,因此無需額外指定-u選項相關內容。「3 2,6,8 * * *」表示每天的02:03:00、06:03:00、08:03:00分別執行一次命令:ls /usr/local。
4.減號(-)的使用舉例。
例子中的「0 2-6 * * 6 df -h /」表示用戶crontab在每周六的02:00、03:00、04:00、05:00、06:00執行命令:df -h / 。
5.斜杠(/)的使用舉例。
例子中表示每隔2分鍾執行一次命令:echo "GeekDevOps">>/root/GeekDevOps.txt。
6.crontab的使用非常簡單,很容易理解,只要在取值范圍內設置執行的值基本是沒有問題的。現在我們要刪除已經設置的這些定時任務。
例子中,選項-r表示刪除所有定時任務。選項-i表示在刪除前進行再次確定,輸入y或者Y才能真正刪除。
7.備份我們設置的用戶任務調度配置文件。
8.系統任務調度的使用舉例。
系統任務調度與用戶任務調度不一樣,需要直接在/etc/crontab裡面配置,如果需要指定用戶,還需要在執行命令前指定用戶名。通過crontab -l 命令是查看不到系統任務調度任務的。
㈢ Kali-linux 定時執行任務Crontab的簡單設置
1.修改crontab文件添加或修改定時任務
直接編輯文件:nano /etc/crontab
或使用crontab命令:crontab -e
2.語法介紹:
裡面已經有一些test示例,照著添加或修改就行,這里做點簡單介紹:
time user command
分 時 天 月 星期 用戶 命令
minute hour day month dayofweek user command
A. 時間 time:
minute: 分鍾,從 0 到 59 之間的任何整數
hour: 小時,從 0 到 23 之間的任何整數
day: 日期,從 1 到 31 之間的任何整數(如果指定了月份,必須是該月份的有效日期)
month: 月份,從 1 到 12 之間的任何整數(或使用月份的英文簡寫如 jan、feb 等等)
dayofweek: 星期,從 0 到 7 之間的任何整數,這里的 0 或 7 代表星期日(或使用星期的英文簡寫如 sun、mon 等等)
command: 要執行的命令(command是linux終端可以直接執行的命令。)
這里一些符號可以表示以上特殊數值:
*表示所有有效值
-表示範圍, 比如1-4(從1到4)
,表示散數數值, 比如1,2,4,7...
/表示每隔,比如 */19 (每隔19 )
看一些簡單的例子,以下是我自己的一個crontab文件:
root@mtx:~#crontab -l
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow usercommand
#17 ** * *root cd / && run-parts --report /etc/cron.hourly#每小時的17分
#25 6* * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )#每天6點25分
#47 6* * 7roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )#每年7月份里每一天的6點47分
#52 61 * *roottest -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )#每個月1號的6點52分
*/4 * * * * root /home/Tool/httpslow/httpslow.sh 每4分鍾
#
B. 命令 command
命令command直接是linux終端可以執行的命令或可執行腳本的絕對位置
3.使用方法:
crontab crontab_file (-u user)#如crontab /etc/crontab -u root (root用戶執行默認配置文件)
crontab -l#查看當前正在運行的crontab服務
crontab -r#刪除用戶crontab配置文件
crontab -i#刪除前給出提示
crontab -h#查看幫助
/etc/init.d/cron start/stop/restart/reload#啟動/停止/重啟/重新載入 crontab服務
簡單的臨時重復命令完全可以有其他方案代替:
while true;do clear && echo '您的ip地址是:' && wget -qo- ifconfig.me/ip;sleep 120;done
#每2分鍾刷新一次外網ip地址,並列印出來」
watch -n 5 netstat -nus#顯示網路流量,每5秒刷新一次
。。。
㈣ Linux裡面crontab是什麼
首先,crontab是一個命令,常見於Unix和類Unix的操作系統之中,用於設置周期性被執行的指令。該命令從標准輸入設備讀取指令,並將其存放於「crontab」文件中,以供之後讀取和執行。與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鍾會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。其中:
1、cron是服務名稱;
2、crond是後台進程;
3、crontab是計劃任務表;
1、系統任務調度:系統周期性所要執行的工作,比如寫緩存數據到硬碟、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件
2、用戶任務調度:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用crontab來定製自己的計劃任務。所有用戶定義的crontab文件都被保存在/var/spool/cron目錄下,其文件名與用戶名一致。
用法:
1、crontab [-u user] file:-u用來指定某個用戶的crontab服務,一般是像root這種高許可權用戶使用。file是命令文件的名字,表示將file作為crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標准輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
2、crontab [-u user] -e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件內容。
3、crontab [-u user] -l:顯示某個用戶的crontab文件內容。如果不指定用戶,則表示顯示當前用戶的crontab文件內容。
4、crontab [-u user] -[i]r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。-i參數指定在刪除用戶的crontab文件時是否給確認提示。
效果如下
㈤ linux下編寫定時任務crontab
linux下的crontab服務:
1、crontab 是用來讓使用者在固定時間或固定間隔執行程序之用
在linux平台上如果需要實現任務調度功能可以編寫cron腳本來實現。
以某一頻率執行任務
linux預設會啟動crond進程,crond進程不需要用戶啟動、關閉。
crond進程負責讀取調度任務並執行,用戶只需要將相應的調度腳本寫入cron的調度配置文件中。
cron的調度文件有以下幾個:
1. crontab
2. cron.d
3. cron.daily
4. cron.hourly
5. cron.monthly
6. cron.weekly
如果用的任務不是以hourly monthly weekly方式執行,則可以將相應的crontab寫入到crontab 或cron.d目錄中。
示例:
每隔一分鍾執行一次腳本 /opt/bin/test-cron.sh
可以在cron.d新建腳本 echo-date.sh
內容為
*/1 * * * * root /opt/bin/test-cron.sh
2、cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。由於Cron 是Linux的內置服務,如果它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
你也可以將這個服務在系統啟動的時候自動啟動:
在/etc/rc.d/rc.local這個腳本的末尾加上:
/sbin/service crond start
現在Cron這個服務已經在進程裡面了,我們就可以用這個服務了
查看服務是否已經運行用 ps -ax | grep cron
3、crontab命令
查看該用戶下的crontab服務是否創建成功, 用 crontab -l 命令
命令 which php 查看linux下安裝的php的路徑
cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
比如說root查看自己的cron設置:crontab -u root -l
再例如,root想刪除fred的cron設置:crontab -u fred -r
在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e
進入vi編輯模式,編輯的內容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
任務調度的crond常駐命令crond 是linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啟動此 任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。
crontab命令選項:
-u指定一個用戶
-l列出某個用戶的任務計劃
-r刪除某個用戶的任務
-e編輯某個用戶的任務
4、cron文件語法:
分 小時 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范圍,0表示周日一般一行對應一個任務)
5、 新增調度任務
新增調度任務可用兩種方法:
1)、在命令行輸入: crontab -e 然後添加相應的任務,wq存檔退出。
2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。
6、 查看調度任務
crontab -l //列出當前的所有調度任務
crontab -l -u jp //列出用戶jp的所有調度任務
7、 刪除任務調度工作
crontab -r //刪除所有任務調度工作
8、 任務調度執行結果的轉向
例1:每天5:30執行ls命令,並把結果輸出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
註:2>&1 表示執行結果及錯誤信息。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號
HOME=/ //使用者運行的路徑,這里是根目錄
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小時執行/etc/cron.hourly內的腳本
02 4 * * * root run-parts /etc/cron.daily //每天執行/etc/cron.daily內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期執行 /etc/cron.weekly內的腳本
42 4 1 * * root run-parts /etc/cron.monthly //每月去執行/etc/cron.monthly內的腳本
大家注意」run-parts」這個參數了,如果去掉這個參數的話,後面就可以寫::要運行的某個腳本名,而不是文件夾名了。
總結:
編寫定時任務的兩種方式:1.sudo vim /etc/crontab 2. sudo crontab -e
查看定時任務的兩種方式:1.sudo cat /etc/crontab 2.sudo crontab -l
*/1 * * * * appuser cd /app/webserver/website/api-cb.chuchujie.com/master/current/script/ && ./back_coupon.sh 2 10 >> /dev/null 2>&1
查看定時任務是否運行:
sudo tail -f /var/log/cron //定時任務日誌(查看剛才設置的任務是否執行)
註:腳本有可執行許可權
sh a.sh(不需要執行許可權)
./sh (需要執行許可權)
1.當shell腳本具有可執行許可權時,用sh filename與./filename執行腳本是沒有區別的。./filename是因為當前目錄沒有在PATH中,所有"."是用來表示當前目錄的。
㈥ 4-13 Linux中的計劃作業 --- crontab(一、crontab 命令操作)
1、 cron:是一個線程,它可以讓 linux 周期性的執行某一命令。
2、linux 指定計劃任務有兩種方式。一種是通過 crontab 命令、另一種是通過 /etc/crontab 配置文件。下面先操作 crontab 命令,後操作 /etc/crontab 文件。
3、 crontab:是一個命令,可以設置 linux 周期性執行某一命令。
crontab 參數選項:
-u:設置某一用戶的周期性工作(只有 root 許可權可以設置)。
-e:編輯 crontab 的工作內容。
-l:查閱 crontab 的工作內容。
-r:移除 crontab 的所有工作內容,如需移除單項或非全部,可用 -e 編輯。
4、 crontab 的格式概括:
特殊符號(* 星號、,逗號,- 減號,/ 斜杠),特定的符號可以組合參數的格式、表示範圍 和 時間周期。符號格式是表達式的一種,5 個 * 號對標參數格式圖解如下:
5、特殊符號解析:
6、crontab 命令案例實操:
6)、指定時間輸出 date 。
例:每小時的 0分鍾(整點),15分鍾、30分鍾、45分鍾 輸出 date 時間到當前目錄 date.txt 文件,如果沒有 date.txt 文件則會自動創建一個。指定時間的輸出,不要分鍾區間的 * 號,直接寫上時間。單個時間參數直接取代 * 號的位置,多個時間參數用 ,逗號隔開。
7)、例:每天晚上 22:23、22:24、22:25 輸出 date 到 mydate.txt 文件。
8)、例:每天 1 點到 3 點的第 10 分鍾 和第 50 分鍾把 date 輸出到 1-3date.txt 文件。
9)、例:每逢周 六、日的 1:00 輸出 date 到 mydate.txt。
10)、例:每周日的 00:00 輸出 date 到 mydate.txt。
㈦ linux crontab命令怎麼用
1.作用 使用crontab命令可以修改crontab配置文件,然後該配置由cron公用程序在適當的時間執行,該命令使用許可權是所有用戶。 2.格式 crontab [-u user] {-l | -r | -e} 3.主要參數 -e:執行文字編輯器來設定時程表,內空的文字編輯器是vi -r:刪除...
㈧ Linux crontab怎麼定時執行任務
linux下定時執行任務的方法 【非原創,個人網上收集整理了一下】
在LINUX中,周期執行的任務一般由cron這個守護進程來處理[ps -ef|grep cron]。cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。
cron的配置文件稱為「crontab」,是「cron table」的簡寫。
一、cron在3個地方查找配置文件:
1、/var/spool/cron/ 這個目錄下存放的是每個用戶包括root的crontab任務,每個任務以創建者的名字命名,比如tom建的crontab任務對應的文件就是/var/spool/cron/tom。
一般一個用戶最多隻有一個crontab文件。
二、/etc/crontab 這個文件負責安排由系統管理員制定的維護系統以及其他任務的crontab。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# .---------------- 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
三、/etc/cron.d/ 這個目錄用來存放任何要執行的crontab文件或腳本。
四、許可權
crontab許可權問題到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:
1、如果兩個文件都不存在,則只有root用戶才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,則只有列在cron.allow文件里的用戶才能使用crontab命令,如果root用戶也不在裡面,則root用戶也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,則只有列在cron.deny文件裡面的用戶不能使用crontab命令,其它用戶都能使用。
4、如果兩個文件都存在,則列在cron.allow文件中而且沒有列在cron.deny中的用戶可以使用crontab,如果兩個文件中都有同一個用戶,
以cron.allow文件裡面是否有該用戶為准,如果cron.allow中有該用戶,則可以使用crontab命令。
AIX 中 普通用戶默認都有 crontab 許可權,如果要限制用戶使用 crontab ,就需要編輯/var/adm/cron/cron.deny
HP-UNIX 中默認普通用戶沒得crontab 許可權 ,要想放開普通用戶的crontab 許可權可以編
五、創建cron腳本
第一步:寫cron腳本文件,命名為crontest.cron。
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt 表示,每隔15分鍾,執行列印一次命令
第二步:添加定時任務。執行命令 「crontab crontest.cron」。搞定
第三步:"crontab -l" 查看定時任務是否成功或者檢測/var/spool/cron下是否生成對應cron腳本
六、cron服務
cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下運行作業。
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
/sbin/service crond status //查看服務狀態
crontab用法
crontab命令用於安裝、刪除或者列出用於驅動cron後台進程的表格。用戶把需要執行的命令序列放到crontab文件中以獲得執行。
每個用戶都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接創建或者直接修改。該crontab文件是通過crontab命令創建的
在crontab文件中如何輸入需要執行的命令和時間。該文件中每行都包括六個域,其中前五個域是指定命令被執行的時間,最後一個域是要被執行的命令。
每個域之間使用空格或者製表符分隔。格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday)
除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值范圍內的數字,"/"代表每的意思,"/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。
-l 在標准輸出上顯示當前的crontab。
-r 刪除當前的crontab文件。
-e 使用VISUAL或者EDITOR環境變數所指的編輯器編輯當前的crontab文件。當結束編輯離開時,編輯後的文件將自動安裝。
幾個例子:
每天早上6點
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,因為cron把任何輸出都email到root的信箱了。
每兩個小時
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11點到早上8點之間每兩個小時和早上八點
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * 1-3 command line
1月1日早上4點
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號 HOME=/
每小時執行/etc/cron.hourly內的腳本
01 * * * * root run-parts /etc/cron.hourly
每天執行/etc/cron.daily內的腳本
02 4 * * * root run-parts /etc/cron.daily
每星期執行/etc/cron.weekly內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly
每月去執行/etc/cron.monthly內的腳本
42 4 1 * * root run-parts /etc/cron.monthly
注意: "run-parts"這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名。
每天的下午4點、5點、6點的5 min、15 min、25 min、35 min、45 min、55 min時執行命令。
5,15,25,35,45,55 16,17,18 * * * command
每周一,三,五的下午3:00系統進入維護狀態,重新啟動系統。
00 15 * * 1,3,5 shutdown -r +5
每小時的10分,40分執行用戶目錄下的innd/bbslin這個指令:
10,40 * * * * innd/bbslink
每小時的1分執行用戶目錄下的bin/account這個指令:
1 * * * * bin/account
每天早晨三點二十分執行用戶目錄下如下所示的兩個指令(每個指令以;分隔):
20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
每年的一月和四月,4號到9號的3點12分和3點55分執行/bin/rm -f expire.1st這個指令,並把結果添加在mm.txt這個文件之後(mm.txt文件位於用戶自己的目錄位置)。
12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt
at命令實現定時任務
假如我們只是想要讓特定任務運行一次,那麼,這時候就要用到at監控程序了。
at類似列印進程,會把任務放到/var/spool/at目錄中,到指定時間運行它 。at命令相當於另一個shell,運行at time命令時,它發送一個個命令,可以輸入任意命令或者程序。
at命令執行流程如下
# at 2:05 tomorrow
at>/home/kyle/do_job
at> Ctrl+D
AT Time中的時間表示方法
-----------------------------------------------------------------------
時 間 例子 說明
-----------------------------------------------------------------------
Minute at now + 5 minutes 任務在5分鍾後運行
Hour at now + 1 hour 任務在1小時後運行
Days at now + 3 days 任務在3天後運行
Weeks at now + 2 weeks 任務在兩周後運行
Fixed at midnight 任務在午夜運行
Fixed at 10:30pm 任務在晚上10點30分
注意:linux默認為不啟動,而ubuntu默認為啟動的。檢查是否啟動,用service atd檢查語法,用service atd status檢查atd的狀態,用service atd start啟動atd服務。
查看at執行的具體內容:一般位於/var/spool/at目錄下面, 用vi打開,在最後一部分就是你的執行程序
參數詳解
-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 : 列出所有已經完成但尚未刪除的指定
刪除任務
atrm 2
三天後的下午 5 點鍾執行 /bin/ls :
at 5pm 3 days /bin/ls
三個星期後的下午 5 點鍾執行 /bin/ls :
at 5pm 2 weeks /bin/ls
明天的 17:20 執行 /bin/date :
at 17:20 tomorrow /bin/date
1999 年的最後一天的最後一分鍾印出 the end of world !
at 23:59 12/31/1999 echo the end of world !
頂2踩0
㈨ linux下CRONTAB用什麼命令定義某個程序執行的優先順序別
linux下CRONTAB定義某個程序執行的優先順序別:
1、順序執行多條命令:假設有一堆命令要運行,又不想一個一個運行-等待-運行-等待…這時就可以使用「;」來進行批量順序運行命令。
2、有選擇的執行命令:有時候需要像代碼那樣讓有些命令根據前面命令的執行情況來判斷該條命令是否應該執行,要在ls命令安裝了的情況下看看用戶目錄下的文件,ls存在,所以【which ls】返回值為0,&&表示的是如果返回值為0則運行下一句,否則就不運行。
3、管道是一種通信機制,通常用於進程間的通信(也可通過socket進行網路通信),它表現出來的形式就是將前面每一個進程的輸出(stdout)直接作為下一個進程的輸入(stdin)。
擴展資料:
CRONTAB的使用命令定義:
crontab 是用來讓使用者在固定時間或固定間隔執行程序之用,換句話說,也就是類似使用者的時程表。
-u user 是指設定指定 user 的時程表,這個前提是你必須要有其許可權(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。
-e [UserName]: 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)。
-r [UserName]: 刪除目前的時程表。
-l [UserName]: 列出目前的時程表。
-v [UserName]:列出用戶cron作業的狀態。
㈩ Linux Crontab 表達式詳解
cron的表達式被用來配置CronTrigger實例。 cron的表達式是字元串,實際上是由七子表達式,描述個別細節的時間表。這些子表達式是分開的空白,代表:
1. Seconds
2. Minutes
3. Hours
4. Day-of-Month
5. Month
6. Day-of-Week
7. Year ( 可選欄位 )
例 "0 0 12 ? * WED" 在每星期三下午12:00 執行,
個別子表達式可以包含范圍, 例如,在前面的例子里("WED")可以替換成 "MON-FRI", "MON, WED, FRI"甚至"MON-WED,SAT".
「*」 代表整個時間段.
每一個欄位都有一套可以指定有效值,如
Seconds (秒) :可以用數字0-59 表示,
Minutes( 分) :可以用數字0-59 表示,
Hours( 時) :可以用數字0-23表示,
Day-of-Month( 天) :可以用數字1-31 中的任一一個值,但要注意一些特別的月份
Month( 月) :可以用0-11 或用字元串 「JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC」 表示
Day-of-Week( 每周 ) : 可以用數字1-7表示(1 = 星期日)或用字元口串「SUN, MON, TUE, WED, THU, FRI and SAT」表示
「/」:為特別單位,表示為「每」如「0/15」表示每隔15分鍾執行一次,「0」表示為從「0」分開始, 「3/20」表示表示每隔20分鍾執行一次,「3」表示從第3分鍾開始執行
「?」:表示每月的某一天,或第周的某一天
「L」:用於每月,或每周,表示為每月的最後一天,或每個月的最後星期幾如「6L」表示「每月的最後一個星期五」
「W」:表示為最近工作日,如「15W」放在每月(day-of-month)欄位上表示為「到本月15日最近的工作日」
「「#」:是用來指定「的」每月第n個工作日,例 在每周(day-of-week)這個欄位中內容為"6#3" or "FRI#3" 則表示「每月第三個星期五」
1)Cron表達式的格式:秒 分 時 日 月 周 年(可選)。
欄位名 允許的值 允許的特殊字元
秒 0-59 , - * /
分 0-59 , - * /
小時 0-23 , - * /
日 1-31 , - * ? / L W C
月 1-12 or JAN-DEC , - * /
周幾 1-7 or SUN-SAT , - * ? / L C #
年 (可選欄位) empty, 1970-2099 , - * /
「?」字元:表示不確定的值
「,」字元:指定數個值
「-」字元:指定一個值的范圍
「/」字元:指定一個值的增加幅度。n/m表示從n開始,每次增加m
「L」字元:用在日表示一個月中的最後一天,用在周表示該月最後一個星期X
「W」字元:指定離給定日期最近的工作日(周一到周五)
「#」字元:表示該月第幾個周X。6#3表示該月第3個周五
2)Cron表達式範例:
每隔5秒執行一次:*/5 * * * * ?
每隔1分鍾執行一次:0 */1 * * * ?
每天23點執行一次:0 0 23 * * ?
每天凌晨1點執行一次:0 0 1 * * ?
每月1號凌晨1點執行一次:0 0 1 1 * ?
每月最後一天23點執行一次:0 0 23 L * ?
每周星期天凌晨1點實行一次:0 0 1 ? * L
在26分、29分、33分執行一次:0 26,29,33 * * * ?
每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?