1>编辑root任务调度命令
crontab -l:查看定时任务配置
用户级别(常用)
crontab -e:编辑定时任务(检查语法)
vim /var/spool/cron/root:编辑定时任务(不检查语法)
PS:如果是oldboy用户创建,路径更改为/var/spool/cron/oldboy
系统级别(不常用,但是可以看最基本的语法规则:分、时、日、月、周)
vim /etc/crontab
2>cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,其基本格式为:* * * * * command,其中第五个星号代表()
【解答】星期
【解析】定时任务格式:分 时 日 月 周 命令,可以用cat /etc/crontab命令查看。
3>以下crontab命令在何时会执行?
05 01 * * 1 sh /data/nginx_log/ftp_nginxlog.sh >/dev/null/ 2>&1
【解答】每星期一1点05分
【解析】>/dev/null/ 2>&1 等价于 &>/dev/null,必须要将命令输出(正确的/错误的)追加到黑洞文件。
4>以下字段表示什么意思,可能和哪个服务有关?
*/5 * * * * ping -c 100 www.wanmei.com>/root/network.log 2>&1
【解答】
(1)每5分钟ping域名100次并把结果定向到/root/network.log中,每次这个文件都会被清空。
(2)与DNS服务有关,ping可以测试域名是否能正常解析,以及网络通信是否正常。
5>就是如何备份/var/spool/cron的目录
【解答】tar打包
【解析】tar打包目录方法:
/bin/tar zvcf 包名称.tar.gz /opt/* --exclude=/opt/a.txt
形象记忆:tar 框 苹果(框在前面)
压缩(打包):
tar zvcf backup.tar.gz /opt1/* --exclude=/opt1/a.txt
解压缩(解包):
tar xf backup.tar.gz -C /tmp
6>crontab里0 2 * * 1 /data/postmall/shell/a.sh表示什么含义?
【解答】每周一的凌晨2点整执行a.sh脚本
7>写一条crontab条目,每天的22点钟删除/test/下的所有文件
方法1:删除目录下所有文件(仅仅是文件)
#rm /test files
0 22 * * * find /test -type f|xargs rm &>/dev/null
方法2:
书写脚本del.sh:
cat /server/scripts/del.sh
#!/bin/bash
find /test -type f |xargs rm
定时任务:
00 22 * * * /bin/bash /server/scripts/del.sh >/dev/null 2>&1
8>某系统管理员需每天做一定的重复工作,请按照下列要求,编织一个解决方案:
(1)在下午4:50删除/abc目录下的全部子目录和全部文件
【解答】
50 16 * * * rm -rf /abc/* >/dev/null 2>&1
(2)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:/backup/backup.tar.gz
【解答】
方法1:Shell脚本+定时任务脚本
第一步:编写备份脚本
cat /server/scripts/bak-data.sh
#!/bin/bash
tar zcf /backup/backup-`date +\%F_\%H:\%M:\%S`.tar.gz /data/*
第二步:编写定时任务脚本
#backup data
50 17 * * 01 /bin/bash /server/scripts/bak-data.sh >/dev/null 2>&1
方法2:定时任务脚本
#backup data
50 17 * * 01 tar zcf /backup/backup-`date +\%F_\%H:\%M:\%S`.tar.gz /test >/dev/null 2>&1
【解析】%前面加\,不然执行脚本要报错。
9>在每周6的凌晨3:15执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句。
【解答】
#run /home/shell/collect.pl
15 03 * * 06 perl /home/shell/collect.pl >/dev/null 2>&1
【解析】常见的脚本有哪些?扩展名是什么?用什么运行?
脚本名称 | 扩展名 | 运行程序 |
---|---|---|
perl脚本 | .pl或.perl | perl |
python脚本 | .py或.python | python |
shell脚本 | .sh或.bash | bash(最佳)、sh |
10>设计一个shell程序,每月第一天执行。
【解答】
00 00 01 * * CMD >/dev/null 2>&1
【解析】(分、时)必须设定
11>有一个/opt/backup.sh脚本,如何在10月的每天早上06到18每3小时执行并在13点单独执行一次。
【解答】0 06-18/3,13 * 10 * /bin/bash /opt/backup.sh &>/dev/null
【解析】-表示连续的范围,/3表示每隔3小时。
12>工作中,/var/www/html/是网站的发布目录,即站点目录(网站程序代码存放的地方)
。如何每天凌晨0点30对其进行自动备份。写出操作步骤?
1.书写脚本bak-www.sh:
#!/bin/bash
tar zcf /backup/www-`date +\%F`.tar.gz /var/www/html/*
2.定时任务:
#backup
30 00 * * * /bin/bash /server/scripts/bak-www.sh
13>用一普通用户想在每周日零点零分定期备份/user/backup 到 /tmp 目录下,该用户应如何做?
【解答】可以直接切换到oldboy普通用户下,然后执行crontab -e;或者crontab -u oldboy -e
1.书写脚本:/server/scripts/bak-user.sh
#!/bin/bash
tar zcf /tmp/backup-`date +\%F`.tar.gz /user/backup
2.编辑定时任务bak-user.sh:
#backup
00 00 * * 00 sh /server/scripts/bak-user.sh
14>Unix系统上需要创建以下crontab定时任务:在每周5的凌晨1:10执行命令,将当时系统中含有“asiainfo” 关键字的进程信息查询处理,并追加记录到/progress.log文件中
【解答】
#ps asiainfo
10 01 * * 05 ps -ef|grep asiainfo >>/progress.log 2>&1
15>在每个月的第一天备份并压缩/etc目录下的所有内容,存放在/root/backup目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。
【解答】
1.书写脚本bak-etc.sh:
#!/bin/bash
tar zcf /root/backup/`date +\%y_%m_\%d`_etc.tar.gz /etc
2.定时任务:
#backup /etc
00 00 01 * * /bin/bash /server/scripts/bak-etc.sh >/dev/null 2>&1
16>说一下crontab的配置,尽可能多的写出来
【解答】
(1)命令行测试
(2)编写脚本
(3)测试脚本
(4)编辑crontab
第一步:什么时间执行脚本
第二步:脚本格式→分 时 日 月 周 命令/脚本 >/dev/null 2>&1
【解析】最好写脚本,这样模块化程度更高。
17>请写出一条计划任务,每天将文件倒数1000行内容在10:00整的时候追加到/tmp的list文件内。
【解析】
#zhuijia files
00 10 * * * /bin/tail -n 1000 file >>/tmp/list 2>&1