题目描述:
1.每天早上8点30分启动服务器的ftp服务,在每天晚上23点30分就关闭ftp服务。如果启动成功把ftp的进程信息写入 /var/ftp/年-月-日.log 文件中,如果启动失败,需要给root发一封邮件。邮件内容为: start ftp error。
2.在早上8点30分到晚上23点30分之间,每隔1小时ping一下百度域名(每次ping 发4次),保证网络畅通,并把ping的结果追加到 /var/ftp/年-月-日.log 文件中。
3. 每天晚上11点50分备份ftp目录(/var/ftp)生成名为 年-月-日.tar.gz 的压缩包,并把压缩包的权限修改为只有root有读权限,其他都没有权限。把压缩包移动到root主目录下。然后清空/var/ftp下的所有内容。(假设/var/ftp目录已存在)
定时器简介
我们首先要使用定时器,用户的个人任务的话直接 crontab -e 就可以编辑自己的定时任务。如果需要系统执行的,则去修改/etc/crontab。
服务启动、停止、查看。
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond status
格式
分 时 日 月 周 任务 //无关项用*代替,也代表了每一,其中“,”代表与,“-”代表区间
例:每天8:30执行date命令:
30 8 * * * date
例:每天8:30,9:30执行date命令:
30 8,9 * * * date
例:每天8:30-晚上8:30执行date命令:
30 8-20 * * * date
如果是脚本,则是
分 时 日 月 周 用户 run-parts 绝对路径
例:每天8:30以root身份执行/root/p.sh程序
30 8 * * * root run-parts /root/p.sh
题目解答示例
root用户的个人crontab内容
30 8 * * * root run-parts /root/startftp.sh
30 23 * * * systemctl stop vsftpd
30 8-23 * * * root run-parts /root/pingBaidu.sh
50 23 * * * root run-parts /root/save.sh
/root/startftp.sh,对于发送邮件mail命令,格式有多种,如 echo 正文 | mail -s 标题 用户 。
#! /bin/sh
systemctl start vsftpd
if [ $? != 0 ]; then
echo "start ftp error" | mail -s "ftp" root
else
ps -ef | grep vsftpd >> /var/ftp/"`date +%Y-%m-%d`".log
fi
/root/pingBaidu.sh
#! /bin/sh
ping -c 4 www.baidu.com >> /var/ftp/"`date +%Y-%m-%d`".log
/root/save.sh
#! /bin.sh
tar -czvf "`date +%Y-%m-%d`".tar.gz /var/ftp
chmod 400 "`date +%Y-%m-%d`".tar.gz
rm -rf /var/ftp/*