第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 任务调度命令 C
crontab l
crontab E
vim /var/spool/cron/root
1.3 以下 crontab 命令在何时会执行( D)
05 01 * * 1 sh /data/nginx_log/ftp_nginxlog.sh >/dev/null/ 2>&1
每天一点五分
每天五点一分
每星期一五点一分
每星期一一点五分
第2章 填空
2.1 cron 是一个 linux 下的定时执行工具,可以在无需人工干预的情况下运行作业,其基本 格式为:(* * * * command >/dev/null 2>&1) 其中第五个星号代表 (周几)
* * * * * command >/dev/null 2>&1
* * * * * command &>/dev/null
* * * * * command >>/tmp/log 2>&1
* * * * * command &>>/tmp/log
以上四个都可以
2.2 由 crontab 命令定制执行 test 用户家目录下的程序 sum 的格式为:
* * * * /home/test/sun >/dev/null 2>&1
* * * * /home/test/sun &>/dev/null
2.3 Linux 系统计划任务编辑命令 (crontab -e )或 (vim /var/spool/cron/root )假设当前是 root
第3章 简答
3.1 以下字段可能和哪个服务有关,表示什么意思
*/5 * * * * ping c 100 www.wanmei.com >/root/network.log 2>&1
字段===域=== 列
- 和定时任务服务有关
每5 分钟 ping 域名 100 次并把正确或错误的结果重定向到 root/network.log 中,每次这个文件都会被清空再追加 - 与 DNS 服务有关 ping 可以测试域名是否能正常解析
域名====>ip 地址
3.2 如何备份生产环境的定时任务?(生产 环境的定时任务默认跑在 root 用户下)
生产环境
线上环境,用户正在使用环境
就是如何备份var/spool/cron 目录或 var/spool/cron/root
方法1 cp (可以 不推荐)
方法2 tar 打包压缩 目录
3.3 写一条计划任务,在每天晚上的 3:05 分执行脚本 /usr/script/tongji.sh
#tongji by liyy at 20190101
0 5 03 * * * bin/sh /usr/scrip/tongji.sh >/dev/null 2>&1
3.4 crontab 里 0 2 * * 1 /data/postmall/shell/a.sh 表示什么含义?
每周1 的半夜两点执行 a .sh 脚本
3.5 写一条 crontab 条目,每天的 22 点钟删除 /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 某系统管理员需每天做一定的重复工作,请按照下列要求,编织一个解决方案:
(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 执行 /home/shell/collect.pl ,并将标准输出和标准错误输出到 /dev/null 设备,请写出 crontab 中的语句
扩展名 | 什么脚本 | 用什么运行 |
---|---|---|
.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 设计一个 shell 程序,每月第一天执行
00 00 01 * * CMD >/dev/null 2>&1
3.9 有一个 /opt/backup.sh 脚本,如何在 10 月的每天早上 06 到 18 每 3 小时执行并在 13 点单独执行一次。
#backup
00 06-18/3,13 * 10 * sh /opt/backup.sh >/dev/null 2>&1
3.10 每个月的一号,零点十五执行脚本 /usr/bin/httpd.sh ,如何实现
httpd 搭建 网站服务 apache
nginx
#EXEC httpd
15 00 01 * * sh /usr/bin/httpd.sh >/dev/null 2>&1
3.11 在 11 月份内,每天的早上 6 点到 12 点中,每隔 2 小时执行一次 /ust/bin/httpd.sh 怎么实现
#exec httpd by liyy at 2019010
00 06 12/2 * 11 * sh /ust/bin/httpd.sh >/dev/null/ 2>&1
3.12 Linux 服务器,如何实现每天早上 5 点重启
#reboot
00 05 * * * /sbin/reboot >/dev/null 2>&1
老男孩教育-Linux 学院-微信:lidao996(加上备注)
00 06 18/3,13 * 10 * sh /opt/backup.sh >/dev/null 2>&1
3.10 每个月的一号,零点十五执行脚本 /usr/bin/httpd.sh ,如何实现
http
d 搭建 网站服务 apache
nginx
EXEC httpd
15 00 01 * * sh /usr/bin/httpd.sh >/dev/null 2>&1
3.11 在 11 月份内,每天的早上 6 点到 12 点中,每隔 2 小时执行一次 /ust/bin/httpd.sh 怎么实现
exec httpd by liyy at 2019010
00 06 12/2 * 11 * sh /ust/bin/httpd.sh >/dev/null/ 2>&1
3.12 L inux 服务器,如何实现每天早上 5 点重启
reboot
00 05 * * * /sbin/reboot > >/dev/null 2>&1
3.13 在 11 月份每天早晨 6 点到 10 点 每隔两个小时 执行 /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/ 是网站的发布目录。如何每天凌晨 0 点 30 对其进行自动备份。写出操作步骤?
/var/www/html/是网站的发布目录 站点目录(网站 程序代码存放的地方)
书写笔试题的时候:目录:面试哪家写哪个
#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 用一普通用户想在每周日零点零分定期备份 /user/backup 到 /tmp 目录下,该用户应如何做?
su oldboy
crontab e
crontab -u oldboy e 然后 进入下面的内容
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 系统上需要创建以下 crontab 定时任务:在每周 5 的凌晨 1:10 执行命令,将当时系统中含有 “asiainfo” 关键字的进程信息查询处理,并追加记录到 /progress.log 文件中
过滤
ps -ef|grep asiainfo
ps aux |grep asiainfo
定时任务:
#ps by liyy at 2019010
10 01 * * 05 ps -ef|grep asiainfo >>/progress.log 2>&1
3.17 在每个月的第一天备份并压缩 /etc 目录下的所有内容,存放在 /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
3.19 请写出一条计划任务,每天将文件倒数 1000 行内容在 10:00 整的时候追加到 /tmp 的 list 文件内
#tail
00 10 * * * tail -1000 /etc/passwd >>/tmp/list.txt 2>&1
3.20 如何稳定(固定)执行计划
- 定时 任务服务运行
a) 当前定时 任务是否运行
systemctl
[root@web02 ~]# systemctl is-active crond.service
active #正在运行
[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) 定时 任务是否开机自启动
[root@web02 ~]# systemctl is-enabled crond.service
enabled
- 确保 rsyslog 是否 运行 是否 开机自启动
[root@web02 ~]# systemctl is-active rsyslog.service
active
[root@web02 ~]# systemctl is-enabled rsyslog.service
enabled
- 定时 任务书写规范