05-[ 面試題 答案] 定時任務(wù)

第1章 選擇

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

? MIN HOUR DAY MONTH YEAR COMMAND
? MIN HOUR DAY MONTH DAYOFWEEK COMMAND
? COMMAND HOUR DAY MONTH DAYOFWEEK
? COMMAND YEAR MONTH DAY HOUR MIN

Field 列 字段
awk
的 F 就是 Field Separator 字段 域 分隔符

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

? crontab l
? crontab E
? vim /var/spool/cron/root

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

05 01 * * 1 sh /data/nginx_log/ftp_nginxlog.sh >/dev/null/ 2>&1
? 每天一點(diǎn)五分
? 每天五點(diǎn)一分
? 每星期一五點(diǎn)一分
? 每星期一一點(diǎn)五分

第2章 填空

2.1 cron 是一個 linux 下的定時執(zhí)行工具,可以在無需人工干預(yù)的情況下運(yùn)行作業(yè),其基本 格式為:(* * * * command >/dev/null 2>&1) 其中第五個星號代表 (周幾)

* * * * * command >/dev/null 2>&1
* * * * * command &>/dev/null
* * * * * command >>/tmp/log 2>&1
* * * * * command &>>/tmp/log
以上四個都可以

2.2 由 crontab 命令定制執(zhí)行 test 用戶家目錄下的程序 sum 的格式為:

* * * * /home/test/sun >/dev/null 2>&1
* * * * /home/test/sun &>/dev/null

2.3 Linux 系統(tǒng)計(jì)劃任務(wù)編輯命令 (crontab -e )或 (vim /var/spool/cron/root )假設(shè)當(dāng)前是 root

第3章 簡答

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

*/5 * * * * ping c 100 www.wanmei.com >/root/network.log 2>&1
字段===域=== 列

  1. 和定時任務(wù)服務(wù)有關(guān)
    每5 分鐘 ping 域名 100 次并把正確或錯誤的結(jié)果重定向到 root/network.log 中,每次這個文件都會被清空再追加
  2. 與 DNS 服務(wù)有關(guān) ping 可以測試域名是否能正常解析
    域名====>ip 地址

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

生產(chǎn)環(huán)境
線上環(huán)境,用戶正在使用環(huán)境
就是如何備份var/spool/cron 目錄或 var/spool/cron/root
方法1 cp (可以 不推薦)
方法2 tar 打包壓縮 目錄

3.3 寫一條計(jì)劃任務(wù),在每天晚上的 3:05 分執(zhí)行腳本 /usr/script/#sh

#tongji by liyy at 20190101
0 5 03 * * * bin/sh /usr/scrip/#sh >/dev/null 2>&1

3.4 crontab 里 0 2 * * 1 /data/postmall/shell/a.sh 表示什么含義?

每周1 的半夜兩點(diǎn)執(zhí)行 a .sh 腳本

3.5 寫一條 crontab 條目,每天的 22 點(diǎn)鐘刪除 /test/下的所有文件

方法1 :刪除目錄下所有文件(僅僅是文件)

#rm /test files
00 22 * * * find /test/ -type f |xargs rm -f >/dev/null 2>&1
方法2:
00 22 * * * sh /server/scripts/del.sh >/dev/null 2>&1
cat /server/scripts/del.sh
find /test/ -type f |xargs rm -f

3.6 某系統(tǒng)管理員需每天做一定的重復(fù)工作,請按照下列要求,編織一個解決方案:

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

#del files xxxxx xxx
50 16 * * * rm fr /abc/* >/dev/null 2>&1

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

方法1

cat /server/scripts/bak_data.sh
tar zcf /backup/backup_`date +%F`.tar.gz /data
#backup data
50 17 * * 01 sh /server/scripts/bak_data.sh >/dev/null 2>&1

方法 2

#backup data
50 17 * * 01 tar zcf /backup/backup_`date +\%F`.tar.gz /data >/dev/null 2>&1

3.7 在每周 6 的凌晨 3:15 執(zhí)行 /home/shell/collect.pl ,并將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出到 /dev/null 設(shè)備,請寫出 crontab 中的語句

擴(kuò)展名 什么腳本 用什么運(yùn)行
.pl .perl腳本 perl
.py .python python
.sh .bash shell腳本 sh

#zhixing perl scripts xxx xxx
15 03 * * 06 perl /home/shell/collect.pl >/dev/null 2>&1

3.8 設(shè)計(jì)一個 shell 程序,每月第一天執(zhí)行

00 00 01 * * CMD >/dev/null 2>&1

3.9 有一個 /opt/backup.sh 腳本,如何在 10 月的每天早上 06 到 18 每 3 小時執(zhí)行并在 13 點(diǎn)單獨(dú)執(zhí)行一次。

#backup
00 06-18/3,13 * 10 * sh /opt/backup.sh >/dev/null 2>&1

3.10 每個月的一號,零點(diǎn)十五執(zhí)行腳本 /usr/bin/httpd.sh ,如何實(shí)現(xiàn)

httpd 搭建 網(wǎng)站服務(wù) apache
nginx

#EXEC httpd
15 00 01 * * sh /usr/bin/httpd.sh >/dev/null 2>&1

3.11 在 11 月份內(nèi),每天的早上 6 點(diǎn)到 12 點(diǎn)中,每隔 2 小時執(zhí)行一次 /ust/bin/httpd.sh 怎么實(shí)現(xiàn)

#exec httpd by liyy at 2019010
00 06 12/2 * 11 * sh /ust/bin/httpd.sh >/dev/null/ 2>&1

3.12 Linux 服務(wù)器,如何實(shí)現(xiàn)每天早上 5 點(diǎn)重啟

#reboot
00 05 * * * /sbin/reboot >/dev/null 2>&1
老男孩教育-Linux 學(xué)院-微信:lidao996(加上備注)
00 06 18/3,13 * 10 * sh /opt/backup.sh >/dev/null 2>&1
3.10 每個月的一號,零點(diǎn)十五執(zhí)行腳本 /usr/bin/httpd.sh ,如何實(shí)現(xiàn)
http
d 搭建 網(wǎng)站服務(wù) apache
nginx
EXEC httpd
15 00 01 * * sh /usr/bin/httpd.sh >/dev/null 2>&1
3.11 在 11 月份內(nèi),每天的早上 6 點(diǎn)到 12 點(diǎn)中,每隔 2 小時執(zhí)行一次 /ust/bin/httpd.sh 怎么實(shí)現(xiàn)
exec httpd by liyy at 2019010
00 06 12/2 * 11 * sh /ust/bin/httpd.sh >/dev/null/ 2>&1
3.12 L inux 服務(wù)器,如何實(shí)現(xiàn)每天早上 5 點(diǎn)重啟
reboot
00 05 * * * /sbin/reboot > >/dev/null 2>&1

3.13 在 11 月份每天早晨 6 點(diǎn)到 10 點(diǎn) 每隔兩個小時 執(zhí)行 /usr/bin/httpd.sh

#exec httpd by liyy at 2019010
00 06-10/2 * 11 * sh /ust/bin/httpd.sh >/dev/null/ 2>&1

3.14 /var/www/ 是網(wǎng)站的發(fā)布目錄。如何每天凌晨 0 點(diǎn) 30 對其進(jìn)行自動備份。寫出操作步驟?

/var/www/html/是網(wǎng)站的發(fā)布目錄 站點(diǎn)目錄(網(wǎng)站 程序代碼存放的地方)
書寫筆試題的時候:目錄:面試哪家寫哪個

#backup
30 00 * * * sh server scripts/bak www.sh >/dev/null/ 2>&1
cat server/scripts/bak www.sh
#!/bin/bash
tar zcf /backup/www date +%F )).tar.gz /var/www/html

3.15 用一普通用戶想在每周日零點(diǎn)零分定期備份 /user/backup 到 /tmp 目錄下,該用戶應(yīng)如何做?

su oldboy
crontab e

crontab -u oldboy e 然后 進(jìn)入下面的內(nèi)容

su - oldboy -c whoami
ssh oldboy@172.16.1.7 whoami

#backup
00 00 * * 00 sh / server/scripts/bak user.sh >/dev/null/ 2>&1
cat server/scripts/bak user.sh
#!/bin/bash
tar zcf /tmp/www-$(date +%F) .tar.gz /user/backup

3.16 Unix 系統(tǒng)上需要創(chuàng)建以下 crontab 定時任務(wù):在每周 5 的凌晨 1:10 執(zhí)行命令,將當(dāng)時系統(tǒng)中含有 “asiainfo” 關(guān)鍵字的進(jìn)程信息查詢處理,并追加記錄到 /progress.log 文件中

過濾
ps -ef|grep asiainfo
ps aux |grep asiainfo
定時任務(wù):

#ps by liyy at 2019010
10 01 * * 05 ps -ef|grep asiainfo >>/progress.log 2>&1

3.17 在每個月的第一天備份并壓縮 /etc 目錄下的所有內(nèi)容,存放在 /root/backup 目錄里,且文件名為如下形式 yymmdd_etc yy 為年, mm 為月, dd 為日。

#backup
\00 00 01 * * sh /server/scripts/bak-etc.sh >/dev/null 2>&1
cat /server/scripts/bak-etc/sh
#!/bin/bash
tar zcf /root/backup/`date +%y%m%d`_etc.tar.gz /etc

3.18 說一下 crontab 的配置,盡可能多的寫出來

什么時間做什么 * * * * * 命令 腳本 >/dev/null 2>&1




image.png

3.19 請寫出一條計(jì)劃任務(wù),每天將文件倒數(shù) 1000 行內(nèi)容在 10:00 整的時候追加到 /tmp 的 list 文件內(nèi)

#tail
00 10 * * * tail -1000 /etc/passwd >>/tmp/list.txt 2>&1

3.20 如何穩(wěn)定(固定)執(zhí)行計(jì)劃

  1. 定時 任務(wù)服務(wù)運(yùn)行
    a) 當(dāng)前定時 任務(wù)是否運(yùn)行
    systemctl
[root@web02 ~]# systemctl is-active crond.service 
active   #正在運(yùn)行
[root@web02 ~]# 

ps

[root@web02 ~]# ps -ef |grep crond
root       6591      1  0 Sep16 ?        00:00:01 /usr/sbin/crond -n
root      76937  74966  0 20:03 pts/0    00:00:00 grep --color=auto crond
[root@web02 ~]# 

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

[root@web02 ~]# systemctl is-enabled crond.service 
enabled
  1. 確保 rsyslog 是否 運(yùn)行 是否 開機(jī)自啟動
[root@web02 ~]# systemctl is-active rsyslog.service 
active
[root@web02 ~]# systemctl is-enabled rsyslog.service 
enabled
  1. 定時 任務(wù)書寫規(guī)范
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容