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

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Python中,有几种方法可以使用定时器。 第一种方法是使用`time`模块。你可以使用`time.sleep()`函数来实现简单的定时器功能。例如,如果你想要在2秒后执行某个函数,你可以使用`time.sleep(2)`来暂停程序的执行,然后再调用该函数。这种方法适用于简单的定时任务。 第二种方法是使用`threading`模块。你可以创建一个`Timer`对象,并指定定时器的间隔时间和要执行的函数。例如,你可以使用`threading.Timer(2, func)`来创建一个2秒后执行`func`函数的定时器。然后,你可以使用`timer.start()`来启动定时器。这种方法适用于需要循环调用的定时任务。 第三种方法是使用`schedule`模块。`schedule`是一个轻量级的定时任务调度库。你可以使用`schedule.every().day.at("03:00").do(func)`来创建一个每天在3点执行`func`函数的定时任务。这种方法适用于复杂的定时任务。 另外,如果你在使用`crontab`执行Python脚本时遇到了版本问题,你可以在`crontab`中指定Python解释器的路径。你可以使用`whereis python`命令来查找Python 2.7版本的路径。 综上所述,这是使用定时器的几种方法。你可以根据你的需求选择适合的方法来实现定时任务。 #### 引用[.reference_title] - *1* [树莓派Python3 使用定时器](https://blog.csdn.net/qq_35831134/article/details/89681202)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python实现定时器](https://blog.csdn.net/weixin_45459224/article/details/102600181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python-定时器使用](https://blog.csdn.net/weixin_39730587/article/details/110959945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值