# crontab -e
* * * * * /bin/echo `date +%F' '%H:%M%S`
# tail -f /var/log/cron
Nov 20 10:25:01 SVPNITECSP01 crond[11908]: (root) CMD (/bin/echo `date +)
Nov 20 10:26:01 SVPNITECSP01 crond[11914]: (root) CMD (/bin/echo `date +)
Nov 20 10:27:01 SVPNITECSP01 crond[11920]: (root) CMD (/bin/echo `date +)
② crontab中如何實現每隔多少天執行一次腳本
1. # 下午6點到早上6點,每隔15分鍾執行一次腳本0,15,30,45 18-06 * * * /bin/bash $HOME/script.sh > /dev/null 2>&1# 每兩小時,重啟一次服務* */2 * * * /etc/init.d/apache2 restart
下面是每隔多少分鍾,每隔多少小時,每天/每周/每月/每年的crontab的歸納總結
每五分鍾執行 */5 * * * *
每五小時執行 0 */5 * * *
每天執行 0 0 * * *
每周執行 0 0 * * 0
每月執行 0 0 1 * *
每年執行 0 0 1 1 *
- # 每個月的1號,11號,21號,31號,執行HTTP服務重啟0 0 */10 * * /etc/init.d/apache2 restart
如果說是每個月的每隔10天來執行某個腳本的話,同樣可以寫成:
?
12但如果是按自然天數,比如說每27天,執行一次腳本,這個要如何實現呢? 如果是這種情況,顯然不能通過crontab直接實現,必須迂迴實現。
下面是能想到的兩種方法。
【方法一】通過腳本控制時間來實現
思路:
1) 在腳本running.sh中設置要執行的次數,這里假如10次,每次間隔27天,script.sh為要執行的腳本
2) 然後執行nohup bash running.sh&將其放置在後台讓其自動執行
③ 如何用crontab執行腳本文件
使用crontab你可以在指定的時間執行一個shell腳本或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都運行
如何往 cron 中添加一個作業?
# crontab –e
0 5 * * * /root/bin/backup.sh
這將會在每天早上5點運行 /root/bin/backup.sh
Cron 各項的描述
以下是 crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 區間為 0 – 59
o hour: 區間為0 – 23
o day-of-month: 區間為0 – 31
o month: 區間為1 – 12. 1 是1月. 12是12月.
o Day-of-week: 區間為0 – 7. 周日可以是0或7.
Crontab 示例
1. 在 12:01 a.m 運行,即每天凌晨過一分鍾。這是一個恰當的進行備份的時間,因為此時系統負載不大。
1 0 * * * /root/bin/backup.sh
2. 每個工作日(Mon – Fri) 11:59 p.m 都進行備份作業。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
下面例子與上面的例子效果一樣:
59 11 * * 1-5 /root/bin/backup.sh
3. 每5分鍾運行一次命令
*/5 * * * * /root/bin/check-status.sh
4. 每個月的第一天 1:10 p.m 運行
10 13 1 * * /root/bin/full-backup.sh
5. 每個工作日 11 p.m 運行。
0 23 * * 1-5 /root/bin/incremental-backup.sh
Crontab 選項
以下是 crontab 的有效選項:
o crontab –e : 修改 crontab 文件. 如果文件不存在會自動創建。
o crontab –l : 顯示 crontab 文件。
o crontab -r : 刪除 crontab 文件。
o crontab -ir : 刪除 crontab 文件前提醒用戶。
以上就是crontab命令的具體使用方法了。
自己寫一個腳本試試就可以了,比如一個簡單的復制備份腳本
#!/usr/bin/env bash
cp -a /usr/local/Hadoop /home/hadoop/hadoop
④ 如何用腳本創建crontab任務
1、crontab -l檢查
2、crontab -e添加
3、root計劃任務保存的文件是/var/spool/cron/root
4、根據實際情況修改/var/spool/cron/root即可
5、例如,計劃任務保存在/opt/cron.txt裡面
0 4 * * * /tomcat6/bin/startup.sh;
6、在第五行添加或指定字元串
sed -i '5 r cron.txt /var/spool/cron/root
或者
sed -i '/cron.start/r cron.txt' /var/spool/cron/root
7、刪除最後一行
sed -i '$d' /var/spool/cron/root
⑤ 如何讓crontab執行腳本後並且把日誌輸出到另一個文件
直接crontab -e添加執行腳本,然後給執行腳本加個重定向到文件就行了。
例如:3023***/path/to/shell/script >> /path/to/log/file #表示每晚的23:30執行/path/to/shell/script腳本,並且把結果重定向輸出到/path/to/log/file文件。
crontab參數:
-e:編輯該用戶的計時器設置;
-l:列出該用戶的計時器設置;
-r:刪除該用戶的計時器設置;
-u<用戶名稱>:指定要設定計時器的用戶名稱。
crontab的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下: minute hour day month week command,時間欄位都是整數, command:要執行的命令,可以是系統命令,也可以是自己編寫的shell腳本文件。 在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,全部。
逗號(,):可以用逗號隔開的值指定一個列表范圍。
中杠(-):可以用整數之間的中杠表示一個整數范圍。
正斜線(/):可以用正斜線指定時間的間隔頻率。
⑥ 如何通過crontab設置腳本自動執行
使用crontab你可以在指定的時間執行一個shell腳本或者一系列Linux命令。例如系統管理員安排一個備份任務使其每天都運行
如何往
cron
中添加一個作業?
#
crontab
–e
0
5
*
*
*
/root/bin/backup.sh
這將會在每天早上5點運行
/root/bin/backup.sh
Cron
各項的描述
以下是
crontab
文件的格式:
{minute}
{hour}
{day-of-month}
{month}
{day-of-week}
{full-path-to-shell-script}
o
minute:
區間為
0
–
59
o
hour:
區間為0
–
23
o
day-of-month:
區間為0
–
31
o
month:
區間為1
–
12.
1
是1月.
12是12月.
o
Day-of-week:
區間為0
–
7.
周日可以是0或7.
Crontab
示例
1.
在
12:01
a.m
運行,即每天凌晨過一分鍾。這是一個恰當的進行備份的時間,因為此時系統負載不大。
1
0
*
*
*
/root/bin/backup.sh
2.
每個工作日(Mon
–
Fri)
11:59
p.m
都進行備份作業。
59
11
*
*
1,2,3,4,5
/root/bin/backup.sh
下面例子與上面的例子效果一樣:
59
11
*
*
1-5
/root/bin/backup.sh
3.
每5分鍾運行一次命令
*/5
*
*
*
*
/root/bin/check-status.sh
4.
每個月的第一天
1:10
p.m
運行
10
13
1
*
*
/root/bin/full-backup.sh
5.
每個工作日
11
p.m
運行。
0
23
*
*
1-5
/root/bin/incremental-backup.sh
Crontab
選項
以下是
crontab
的有效選項:
o
crontab
–e
:
修改
crontab
文件.
如果文件不存在會自動創建。
o
crontab
–l
:
顯示
crontab
文件。
o
crontab
-r
:
刪除
crontab
文件。
o
crontab
-ir
:
刪除
crontab
文件前提醒用戶。
以上就是crontab命令的具體使用方法了。
自己寫一個腳本試試就可以了,比如一個簡單的復制備份腳本
#!/usr/bin/env
bash
cp
-a
/usr/local/Hadoop
/home/hadoop/hadoop
⑦ crontab里的定時任務,可以寫腳本自動去配置么
直接編輯 /var/spool/cron/username 文件就行了,比如:
echo "10 4 1 * * /root/scripts/backup.sh" >> /var/spool/cron/root
⑧ shell腳本之crontab定時腳本,一般創建在哪個位置
linux下使用crontab命令被用來提交和管理用戶的需要周期性執行的任務,示例如下: crontab -e 編輯周期任務 30 21 * * * /etc/init.d/smb restart 每晚的21:30重啟smb crontab命令說明: crontab命令被用來提交和管理用戶的需要周期性執行的任
⑨ 如何用腳本建立crontab任務
crontab 的 manpage 有言:
SYNOPSIS
crontab [-u user] file
是的,你只管把修改後的 crontab 文件變成 crontab 的參數就好了。
你只管 crontab -l 導出一個存文件,對著導出的那個幹些事情,然後 crontab [文件名] 搞定。
你甚至連文件名都不需要,那玩意會讀標准輸入。
crontab_append()
{
(
crontab -l;
echo "$@";
) | crontab;
}
crontab_append @daily fuck fubuki
crontab_append @monthly buy dress --for-user=fubuki
以下是 ED 晚期患者的開小差。
捏個編輯器不就得了。
CONTENT="@hourly /usr/bin/evil" EDITOR="/usr/local/bin/croned" crontab -e
/usr/local/bin/croned:
#!/bin/bash
# silent vim in ex mode, + jumps to last line.
exec vim -e + -sc "a
$CONTENT
.
wq"
如果你學過 ed 也可以用 ed。去掉 -s 而只用 -c 可以看到 ex 的完整輸出。
有可能應該用 VISUAL 變數。
請注意這里 CONTENT 不能包含單個句號。要在 ex 中輸入單個句號,請使用
..
.
s/.//
的形式。
如果你懶,可以用
ts=$(date +%s)
echo "$CONTENT">/tmp/$ts
echo >/tmp/empty
exec vim -e + -sc "a
$(diff -e /tmp/empty /tmp/$ts | tail -c+1)
wq"
的方式請 diff 輸出一個 ed 腳本喂給「魔改 ed」ex 模式的 Vim 幫你搞定。
如果你沒有 ex 只有 ed(這時候你就不能用 vim 的參數 + 跳到最後了),你可以先 crontab -l 導出目前 crontab,復制一個文件補上內容,然後直接 crontab。這樣的話你的腳本長這樣:
crontab_append(){
local ts=$(date +%s)
crontab -l >/tmp/$ts
( cat /tmp/$ts; echo "$@" ) >/tmp/$ts_
diff -e /tmp/$ts{,_} VISUAL=ed crontab -e
}
crontab_append @hourly /usr/bin/evil
所以說啊,要成為熟練的 Eunuchs Hacker,你先得 ED。