定時任務(wù)(面試題)

1.1 定時任務(wù)

1.1.1 選擇

1.1.1.1 Linux下Crontab文件靶累,每個域之間用空格分割,其排列如下正確的是:B

A.MIN HOUR DAY MONTH YEAR COMMAND
B.MIN HOUR DAY MONTH DAYOFWEEK COMMAND
C.COMMAND HOUR DAY MONTH DAYOFWEEK
D.COMMAND YEAR MONTH DAY HOUR MIN

1.1.1.2 編輯root任務(wù)調(diào)度命令 :C

A.crontab -l
B.crontab -E
C.vim /var/spool/cron/root

1.1.1.3 cron是一個linux下的定時執(zhí)行工具,可以在無需人工干預(yù)的情況下運行作業(yè)浩村,其基本格式為:_* * * * * command____,其中第五個星號代表C

A.分鐘
B.小時
C.星期
D.日期

1.1.1.4 以下crontab命令在何時會執(zhí)行(D)

05 01 * * 1 sh /data/nginx_log/ftp_nginxlog.sh >/dev/null/ 2>&1
A.每天一點五分
B.每天五點一分
C.每星期一五點一分
D.每星期一一點五分

1.1.2 填空

1.1.2.1 由crontab命令定制(crontab -e)執(zhí)行test用戶家目錄下的程序sum的格式為:* * * * /home/test/sun
1.1.2.2 Linux系統(tǒng)計劃任務(wù)編輯命令crontab -e 或vim /var/spool/cron/root

1.1.3 簡答

1.1.3.1 以下字段可能和哪個服務(wù)有關(guān),表示什么意思

*/5 * * * * ping -c 100 www.wanmei.com > /root/network.log 2>&1

服務(wù):定時任務(wù)與域名解析
意思:每個五分鐘ping萬維網(wǎng)100次占哟;不管是否連通都將結(jié)果定向到/root/network.log文件中

1.1.3.2 如何備份生產(chǎn)環(huán)境的定時任務(wù)心墅?(生產(chǎn)環(huán)境的定時任務(wù)默認跑在root用戶下)

生產(chǎn)環(huán)境:線上環(huán)境,用戶正在使用的環(huán)境
備份:/var/spool/cron/或/var/spool/cron/root

1.1.3.3 寫一條計劃任務(wù)榨乎,在每天晚上的3:05分執(zhí)行腳本/usr/script/#sh
[root@oldboyedu59 ~]# crontab -e 
#sh /usr/script/#sh  by ylz at 2019-4-28
05 03 * * *   sh /usr/script/#sh   >>/tmp/sh.log   2>&1
1.1.3.4 crontab里0 2 * * 1 /data/postmall/shell/a.sh表示什么含義怎燥?

表示每周一凌晨2點整執(zhí)行腳本/data/postmall/shell/a.sh

1.1.3.5 寫一條crontab條目,每天的22點鐘刪除/test/下的所有文件
[root@oldboyedu59 ~]# crontab -e 
# rm /test/*   by ylz at 2019-4-28
00 22 * * *     rm   /test/*   >>/tmp/sh.log   2>&1
1.1.3.6 某系統(tǒng)管理員需每天做一定的重復(fù)工作蜜暑,請按照下列要求桌粉,編織一個解決方案:

(1) 在下午4:50刪除/abc目錄下的全部子目錄和全部文件

[root@oldboyedu59 ~]# crontab -e 
# rm /abc/*  by ylz at 2019-4-28
50 16 * * *   rm -rf  /abc/*   >>/tmp/sh.log   2>&1

(2) 每逢星期一下午5:50將/data目錄下的所有目錄和文件歸檔并壓縮為文件:backup.tar.gz

[root@oldboyedu59 ~]# crontab -e 
#bak /data  by ylz at 2019-4-28
50 17 * * 1  tar zcf /tmp/backup-`date +\%F`.tar.gz  /root/   >>/tmp/sh.log   2>&1
1.1.3.7 在每周6的凌晨3:15執(zhí)行/home/shell/collect.pl财喳,并將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出到/dev/null設(shè)備吸奴,請寫出crontab中的語句

.pl perl 腳本 用prel運行

.py python 腳本 用Python 執(zhí)行

[root@oldboyedu59 ~]# crontab -e 
#/home/shell/collect.pl  by ylz at 2019-4-28
15 03 * * 6   prel /home/shell/collect.pl   >/dev/mull   2>&1
1.1.3.8 設(shè)計一個shell程序洞坑,每月第一天執(zhí)行

假設(shè)這個shell程序腳本為shell.sh

00 00 1 * *    sh  shell.sh     >>/tmp/sh.log   2>&1
1.1.3.9 有一個/opt/backup.sh腳本,如何在10月的每天早上06到18每3小時執(zhí)行并在13點單獨執(zhí)行一次拙毫。
[root@oldboyedu59 ~]# crontab -e 
#sh /opt/backup.sh   by ylz at 2019-4-28
00 06-18/3,13 * 10 *   sh /opt/backup.sh   >>/tmp/sh.log   2>&1
1.1.3.10每個月的一號依许,零點十五執(zhí)行腳本/usr/bin/httpd.sh,如何實現(xiàn)缀蹄?
[root@oldboyedu59 ~]# crontab -e 
#sh /usr/bin/httpd.sh   by ylz at 2019-4-28
15 00 1 * *   sh /usr/bin/httpd.sh   >>/tmp/sh.log   2>&1
1.1.3.11在11月份內(nèi)峭跳,每天的早上6點到12點中,每隔2小時執(zhí)行一次/ust/bin/httpd.sh 怎么實現(xiàn)
[root@oldboyedu59 ~]# crontab -e 
#sh /usr/bin/httpd.sh   by ylz at 2019-4-28
00 06-12/2 * 11 *   sh /usr/bin/httpd.sh   >>/tmp/sh.log   2>&1
1.1.3.12linux服務(wù)器缺前,如何實現(xiàn)每天早上5點重啟
[root@oldboyedu59 ~]# crontab -e 
#reboot Linux   by ylz at 2019-4-28
00 05 * * *   /sbin/reboot   >>/tmp/sh.log   2>&1
1.1.3.13在11月份每天早晨6點到10點 每隔兩個小時 執(zhí)行/usr/bin/httpd.sh
[root@oldboyedu59 ~]# crontab -e 
#sh /usr/bin/httpd.sh   by ylz at 2019-4-28
00 06-10/2 * 11 *   sh /usr/bin/httpd.sh   >>/tmp/sh.log   2>&1
1.1.3.14/var/www/html/是網(wǎng)站的發(fā)布目錄蛀醉。如何每天凌晨0點30對其進行自動備份。寫出操作步驟衅码?

將打包壓縮文件命令:tar zcf /tmp/www.bak-date +%F.tar.gz /var/www/html/ 寫入腳本/server/scripts/bak-www.sh

[root@oldboyedu59 ~]# crontab -e 
#bakwww   by ylz at 2019-4-28
30 00 * * *   sh  /server/scripts/bak-www.sh    >>/tmp/bakwww.log   2>&1
1.1.3.15用一普通用戶想在每周日零點零分定期備份/user/backup 到 /tmp 目錄下拯刁,該用戶應(yīng)如何做?
crontab -u oldboy -e 然后輸入備份內(nèi)容
1.1.3.16Unix系統(tǒng)上需要創(chuàng)建以下crontab定時任務(wù):在每周5的凌晨1:10執(zhí)行命令逝段,將當(dāng)時系統(tǒng)中含有“asiainfo” 關(guān)鍵字的進程信息查詢處理垛玻,并追加記錄到/progress.log文件中
[root@oldboyedu59 ~]# crontab -e 
#ps   by ylz at 2019-4-28
10 01 * * 5   ps aux |grep  'asiainfo'  >>/progress.log    2>&1
1.1.3.17在每個月的第一天備份并壓縮/etc目錄下的所有內(nèi)容逸绎,存放在/root/backup 目錄里,且文件名為如下形式y(tǒng)ymmdd_etc夭谤,yy為年,mm為月巫糙,dd為日朗儒。

2.書寫腳本

  oot@oldboyedu59 ~]# vim /server/scripts/bak-root.sh
▽
#!bash
tar zcf /root/backup/`date +%Y%m%d`_etc  /etc/
[root@oldboyedu59 ~]# sh -x /server/scripts/bak-etct.sh
++ date +%Y%m%d
+ tar zcf /root/backup/20190428_etc /root/
tar: Removing leading `/' from member names
[root@oldboyedu59 /tmp]# tar xf /root/backup/20190428_etc
[root@oldboyedu59 /tmp]# ll
dr-xr-x--- 3 root root      236 Apr 28 16:24 etc
-rw-r--r-- 1 root root    23901 Apr 28 16:26 20190428_etc

(2)寫入定時任務(wù)

[root@oldboyedu59 ~]# crontab -e 
#baketc   by ylz at 2019-4-28
00 00 01 * *   sh  /server/scripts/bak-etct.sh   >>/tmp/baketc.log   2>&1
1.1.3.18說一下crontab的配置,盡可能多的寫出來

1.在/etc/crontab下設(shè)置参淹,指定用戶名的
(1)使用vim /etc/crontab 進入配置文件醉锄;在最后一行上加上
(2)

* * * * *    用戶名   命令/腳本     定向到文件或黑洞

(3)重啟/etc/crontab 生效
2.使用命令crontab -e ;不用指定用戶名
(1)使用命令crontab -e 進入
(2)寫入

* * * * *       命令/腳本     定向到文件或黑洞

(3)wq保存退出
(4)查看是否有上面腳本的執(zhí)行權(quán)限浙值;還要看腳本里面的涉及的操作文件是否有權(quán)限
(5)重啟crontab恳不,使配置生效

1.1.3.19以下字段可能和那個服務(wù)有關(guān),表示什么意思

*/5 * * * * ping -c 100 ue.game.com > /root/network.log 2>&1

定時任務(wù)
意思:每個五分鐘ping ue.game.com开呐;不管是否連通都將結(jié)果定向到/root/network.log文件中

1.1.3.20/var/www/html/是網(wǎng)站的發(fā)布目錄烟勋。如何每天凌晨0點30對其進行自動備份,寫出操作步驟

將打包壓縮文件命令:tar zcf /tmp/www.bak-date +%F.tar.gz /var/www/html/ 寫入腳本/server/scripts/bak-www.sh

[root@oldboyedu59 ~]# crontab -e 
#bakwww   by ylz at 2019-4-28
30 00 * * *   sh  /server/scripts/bak-www.sh    >>/tmp/bakwww.log   2>&1
1.1.3.21請寫出一條計劃任務(wù)筐付,每天將文件倒數(shù)1000行內(nèi)容在10:00整的時候追加到/tmp的list文件內(nèi)

假設(shè)這個文件為oldboy.txt

[root@oldboyedu59 ~]# crontab -e 
#zhuijia   by ylz at 2019-4-28
00 10 * * *   tail -1000  oldboy.xtx >>/tmp/list         >>/tmp/tailold.log   2>&1
1.1.3.22如何穩(wěn)定(固定)執(zhí)行計劃

1.定時任務(wù)服務(wù)是否運行:
a)當(dāng)前任務(wù)是否運行

[root@oldboyedu59 ~]# systemctl is-active crond
active
[root@oldboyedu59 ~]# ps -ef |grep 'crond'
root       6816      1  0 Apr28 ?        00:00:00 /usr/sbin/crond -n
root      10518  10384  0 10:02 pts/1    00:00:00 grep --color=auto crond

b)定時任務(wù)是否開機自啟動

[root@oldboyedu59 ~]# systemctl is-enabled crond
enabled

2.確保rsyslog是否運行(系統(tǒng)日志服務(wù))

[root@oldedu59 ~]# systemctl is-active  rsyslog
active
[root@oldedu59 ~]# systemctl is-enabled  rsyslog
enabled

3.書寫格式是否規(guī)范

1.1.3.23每天晚上12點打包備份/etc/目錄到/tmp下面

(1)命令行測試

[root@oldedu59 ~]#tar zcf  /backup/etc-`date +%F_%w`.tar.gz  /etc/
tar: Removing leading `/' from member names
[root@oldedu59 ~]# ll etc-2019-04-28.tar.gz 
-rw-r--r-- 1 root root 10213180 Apr 28 09:53 etc-2019-04-28.tar.gz
[root@oldedu59 /tmp]# tar xf /backup/etc-2019-04-28.tar.gz

(2)書寫腳本

[root@oldboyedu59 ~]# vim /server/scripts/+7etc.sh
#!/bin/bash
tar zcf  /backup/etc-`date +%F_%w`.tar.gz  /etc/   >/dev/null  2>&1
rm -f `find /backup/  -type f  -mtime +7  ! -name '*1_*'`   >/dev/null 2>&1

(3)測試腳本

[root@oldboyedu59 ~]# ll /backup/
total 9980
-rw-r--r-- 1 root root        0 Apr 15 22:34 etc-2019-04-15-1_tar.gz
-rw-r--r-- 1 root root 10216366 Apr 28 20:34 etc-2019-04-28_0.tar.gz
[root@oldboyedu59 ~]# tail /var/log/cron
Apr 28 20:31:01 oldboyedu59 CROND[10219]: (root) CMD (sh /server/scripts/etc-bank.sh)
Apr 28 20:32:01 oldboyedu59 CROND[10227]: (root) CMD (sh /server/scripts/etc-bank.sh)
Apr 28 20:33:01 oldboyedu59 CROND[10241]: (root) CMD (sh /server/scripts/etc-bank.sh)

(4)寫入任務(wù)卵惦;改為每分鐘先檢查

[root@oldedu59 ~]# #寫入定時任務(wù),改為每分鐘進行檢查
[root@oldedu59 ~]# crontab -e
#show time  by ylz  at 20190426
#*/2 * * * *  date  >>/tmp/time.log
#beifeng   by ylz  at 2019-4-28
* * * * *  sh /server/scripts/bak-etc.sh
[root@oldedu59 ~]# tail -f  /var/log/cron(看日志  /var/log/cron)
[root@oldedu59 ~]# ll  /tmp/etc-2019-04-28.tar.gz (看結(jié)果)
-rw-r--r-- 1 root root 5341184 Apr 28 10:22 /tmp/etc-2019-04-28.tar.gz

(5)寫入定時任務(wù)

[root@oldedu59 ~]# crontab -e
#show time  by ylz  at 20190426
#*/2 * * * *  date  >>/tmp/time.log   2>&1
#beifeng   by ylz  at 2019-4-28
00 00 * * *  sh /server/scripts/bak-etc.sh   >/dev/null          2>&1   
[root@oldedu59 ~]# cat /var/log/cron
[root@oldedu59 ~]# ll  /tmp/etc-2019-04-28.tar.gz 
-rw-r--r-- 1 root root 5341184 Apr 28 10:22 /tmp/etc-2019-04-28.tar.gz
1.1.3.24每天晚上12點打包備份/etc/目錄到/backup 刪除7天之前的備份

挑戰(zhàn):

1.每天晚上12點打包備份/etc/目錄到/backup 刪除7天之前的備份 但是要保留每周1的備份

(1)命令行測試

[root@oldboyedu59 ~]# rm -f `find /root/  -type f  -mtime +7  ! -name '*1_*'`
[root@oldboyedu59 ~]# ll
total 24
-rw-r--r-- 1 root root    0 Apr 15 22:34 etc-2019-04-15-1_tar.gz

(2)書寫腳本

▽root@oldedu59 ~]# #書寫腳本
[root@oldedu59 ~]# mkdir -p /server/scripts 
[root@oldedu59 ~]# cat /server/scripts/bak-etc.sh
cat: /server/scripts/bak-etc.sh: No such file or directory
[root@oldedu59 ~]# vim /server/scripts/bak-etc.sh
#!/bin/bash
tar zcf /tmp/etc-$(date +%F).tar.gz /etc/
rm -f `find /root/  -type f  -mtime +7  -name 'etc*'`

(3)測試腳本

[root@oldedu59 ~]# cat /server/scripts/bak-etc.sh
#!/bin/bash
tar zcf /tmp/etc-$(date +%F).tar.gz /etc/
[root@oldedu59 ~]# sh /server/scripts/bak-etc.sh
tar: Removing leading `/' from member names
[root@oldedu59 ~]# ll /tmp/etc-2019-04-28.tar.gz 
-rw-r--r-- 1 root root 10213180 Apr 28 09:57 /tmp/etc-2019-04-28.tar.gz

(4)寫入任務(wù)瓦戚;改為每分鐘先檢查

[root@oldedu59 ~]# #寫入定時任務(wù)沮尿,改為每分鐘進行檢查
[root@oldboyedu59 ~]# crontab -e
* * * * *  sh /server/scripts/+7etc.sh    >>/tmp/bak.root  2>&1

(5)寫入定時任務(wù)

[root@oldboyedu59 ~]# crontab -e
00 00 * * *  sh /server/scripts/+7etc.sh    >>/tmp/bak.root  2>&1

終極挑戰(zhàn):

1.每天晚上12點打包備份/etc/目錄到/backup/ip地址命名目錄 刪除7天之前的備份 但是要保留每周1的備份

/backup/10.0.0.200
(1)書寫腳本

▽root@oldedu59 ~]# #書寫腳本
[root@oldedu59 ~]# vim /server/scripts/bak-etc.sh
#!/bin/bash
tar zcf /tmp/etc-$(date +%F).tar.gz /etc/
rm -f `find /root/  -type f  -mtime +7  ! -name '*1_*'`

(2)定時任務(wù)

[root@oldboyedu59 ~]# crontab -e
00 00 * * *  sh /server/scripts/bak-etc.sh    >>/tmp/bak.root  2>&1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市较解,隨后出現(xiàn)的幾起案子畜疾,更是在濱河造成了極大的恐慌,老刑警劉巖印衔,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啡捶,死亡現(xiàn)場離奇詭異,居然都是意外死亡奸焙,警方通過查閱死者的電腦和手機届慈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忿偷,“玉大人金顿,你說我怎么就攤上這事±鹎牛” “怎么了揍拆?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茶凳。 經(jīng)常有香客問我嫂拴,道長播揪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任筒狠,我火速辦了婚禮猪狈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辩恼。我一直安慰自己雇庙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布灶伊。 她就那樣靜靜地躺著疆前,像睡著了一般。 火紅的嫁衣襯著肌膚如雪聘萨。 梳的紋絲不亂的頭發(fā)上竹椒,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天,我揣著相機與錄音米辐,去河邊找鬼胸完。 笑死,一個胖子當(dāng)著我的面吹牛翘贮,可吹牛的內(nèi)容都是我干的舶吗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼择膝,長吁一口氣:“原來是場噩夢啊……” “哼誓琼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肴捉,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤腹侣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后齿穗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傲隶,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年窃页,在試婚紗的時候發(fā)現(xiàn)自己被綠了跺株。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡脖卖,死狀恐怖乒省,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情畦木,我是刑警寧澤袖扛,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響蛆封,放射性物質(zhì)發(fā)生泄漏唇礁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一惨篱、第九天 我趴在偏房一處隱蔽的房頂上張望盏筐。 院中可真熱鬧,春花似錦砸讳、人聲如沸琢融。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至欢揖,卻和暖如春陶耍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背她混。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工烈钞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坤按。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓毯欣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親臭脓。 傳聞我的和親對象是個殘疾皇子酗钞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,654評論 2 354