定时任务(面试题)

1.1 定时任务

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任务调度命令 :C

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

1.1.1.3 cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,其基本格式为:_* * * * * command____,其中第五个星号代表C

A.分钟
B.小时
C.星期
D.日期

1.1.1.4 以下crontab命令在何时会执行(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)执行test用户家目录下的程序sum的格式为:* * * * /home/test/sun
1.1.2.2 Linux系统计划任务编辑命令crontab -e 或vim /var/spool/cron/root

1.1.3 简答

1.1.3.1 以下字段可能和哪个服务有关,表示什么意思

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

服务:定时任务与域名解析
意思:每个五分钟ping万维网100次;不管是否连通都将结果定向到/root/network.log文件中

1.1.3.2 如何备份生产环境的定时任务?(生产环境的定时任务默认跑在root用户下)

生产环境:线上环境,用户正在使用的环境
备份:/var/spool/cron/或/var/spool/cron/root

1.1.3.3 写一条计划任务,在每天晚上的3:05分执行脚本/usr/script/tongji.sh
[root@oldboyedu59 ~]# crontab -e 
#sh /usr/script/tongji.sh  by ylz at 2019-4-28
05 03 * * *   sh /usr/script/tongji.sh   >>/tmp/sh.log   2>&1
1.1.3.4 crontab里0 2 * * 1 /data/postmall/shell/a.sh表示什么含义?

表示每周一凌晨2点整执行脚本/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 某系统管理员需每天做一定的重复工作,请按照下列要求,编织一个解决方案:

(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执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句

.pl perl 脚本 用prel运行

.py python 脚本 用Python 执行

[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 设计一个shell程序,每月第一天执行

假设这个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小时执行并在13点单独执行一次。
[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每个月的一号,零点十五执行脚本/usr/bin/httpd.sh,如何实现?
[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月份内,每天的早上6点到12点中,每隔2小时执行一次/ust/bin/httpd.sh 怎么实现
[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服务器,如何实现每天早上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点 每隔两个小时 执行/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/是网站的发布目录。如何每天凌晨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 目录下,该用户应如何做?
crontab -u oldboy -e 然后输入备份内容
1.1.3.16Unix系统上需要创建以下crontab定时任务:在每周5的凌晨1:10执行命令,将当时系统中含有“asiainfo” 关键字的进程信息查询处理,并追加记录到/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目录下的所有内容,存放在/root/backup 目录里,且文件名为如下形式yymmdd_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)写入定时任务

[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下设置,指定用户名的
(1)使用vim /etc/crontab 进入配置文件;在最后一行上加上
(2)

* * * * *    用户名   命令/脚本     定向到文件或黑洞

(3)重启/etc/crontab 生效
2.使用命令crontab -e ;不用指定用户名
(1)使用命令crontab -e 进入
(2)写入

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

(3)wq保存退出
(4)查看是否有上面脚本的执行权限;还要看脚本里面的涉及的操作文件是否有权限
(5)重启crontab,使配置生效

1.1.3.19以下字段可能和那个服务有关,表示什么意思

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

定时任务
意思:每个五分钟ping ue.game.com;不管是否连通都将结果定向到/root/network.log文件中

1.1.3.20/var/www/html/是网站的发布目录。如何每天凌晨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请写出一条计划任务,每天将文件倒数1000行内容在10:00整的时候追加到/tmp的list文件内

假设这个文件为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如何稳定(固定)执行计划

1.定时任务服务是否运行:
a)当前任务是否运行

[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)定时任务是否开机自启动

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

2.确保rsyslog是否运行(系统日志服务)

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

3.书写格式是否规范

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)写入任务;改为每分钟先检查

[root@oldedu59 ~]# #写入定时任务,改为每分钟进行检查
[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 (看结果)
-rw-r--r-- 1 root root 5341184 Apr 28 10:22 /tmp/etc-2019-04-28.tar.gz

(5)写入定时任务

[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天之前的备份

挑战:

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)写入任务;改为每分钟先检查

[root@oldedu59 ~]# #写入定时任务,改为每分钟进行检查
[root@oldboyedu59 ~]# crontab -e
* * * * *  sh /server/scripts/+7etc.sh    >>/tmp/bak.root  2>&1

(5)写入定时任务

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

终极挑战:

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)定时任务

[root@oldboyedu59 ~]# crontab -e
00 00 * * *  sh /server/scripts/bak-etc.sh    >>/tmp/bak.root  2>&1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335