Day-04:定时器的使用

题目描述:

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/*

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值