文章定时自动采集(1.安装cron基本上所有的Linux发行版小技巧,你知道吗?)

优采云 发布时间: 2021-11-14 11:09

  文章定时自动采集(1.安装cron基本上所有的Linux发行版小技巧,你知道吗?)

  大家好,我是小学生

  今天的文章来源于工作中的一个小技巧,主要是涉及到日常工作的自动化处理。

  如果你每天需要做一些重复性的工作,比如发报告、统计数据、发邮件等。

  然后你就可以把这个任务交给电脑,让它每天自动为你完成,你只需要从容的打开保温瓶,静静地泡一杯枸杞。

  今天主要用Linux下的cron服务,ok,直接启动

  1. 安装 cron

  基本上所有 Linux 发行版都默认预装了 cron 工具。

  即使没有预装cron,也很简单。您可以通过执行一些简单的命令来手动安装它

  # 检查是否已经预装了cron

service cron status

  安装并启动服务

  安装:apt-get install cron

启动/停止/重启:service cron start/stop/restart

查询当前任务:crontab -l

  2. 安装检查

  安装完成后,查看是否安装成功,也可以使用status命令查看

  出现如下提示表示安装成功:

  

  另外在ubuntu下可能会出现这个提示:

  

  这也意味着它可以正常使用

  3. cron 用法

  cron的几个简单的用法可以学习一下,后面会通过一个案例来详细介绍如何使用

  首先,列出当前用户调度的cron作业:

  crontab -l

  查看其他用户的cron作业:

  crontab –l –u username

  删除计划的 cron 作业:

  crontab –r

  4. 调度 crontab 计划

  首先通过以下命令在crontab中添加或更新任务

  

  第一次进入会要求选择编辑器,根据自己的习惯来选择。

  选择后,会进入如下界面:

  

  用过vim的同学应该对这个界面比较熟悉,类似操作:按A键开始编辑,按ESC输入wq保存退出

  重点在底部段落:

  m h dom mon dow commmand

  这其实是介绍crontab调度作业的使用,可以用来设置定时任务。

  具体语法是这样的:

  m h dom mon dow command

* * * * * command

- - - - - -

| | | | | |

| | | | | --- 预执行的命令

| | | | ----- 表示星期0~7(其中星期天可以用0或7表示)

| | | ------- 表示月份1~12

| | --------- 表示日期1~31

| ----------- 表示小时1~23(0表示0点)

------------- 表示分钟1~59 每分钟用*或者 */1表示

  举几个简单的应用案例:

  0 2 * * * command

  0 5,17 * * * command

  */10 * * * * command

  0 17 * jan,may,aug sun command

  这些是最常用的。更多用例可以参考这个链接:

  上述案例中的命令表示您需要执行的特定任务,例如打印一个段落:

  echo "Hello xiaoyi" >> /tmp/test.txt

  或者把这段话输出到txt:

  echo "Hello xiaoyi" >> /tmp/test.txt

  或者你需要执行一个 Python 脚本:

  下面的文件路径代表输入参数args,可能有同学会用到。例如,在下面的情况下,您需要输入文件下载路径。

  5. 实战

  搞清楚了以上这些之后,我们就可以开始今天的重头戏了。

  首先,我们需要每天从ftp服务器下载最新的任务数据,将数据下载到本地并通过Python采集数据,最后将结果存入数据库。如果在此期间某个链接出现问题,则会发送警报电子邮件。

  ① Python 脚本

  首先需要一个Python脚本来完成以下功能:

  上述过程的近似伪代码如下:

  if __name__ == '__main__':

"""获取最新数据日期"""

latest_date = get_max_date()

# 以最新日期为名创建文件夹

download_dir = os.path.join(sys.argv[1], latest_date)

if not os.path.exists(download_dir):

os.makedirs(download_dir)

"""从ftp中下载最新数据"""

download_file(latest_date, download_dir)

"""处理最新数据并保存"""

process_data(latest_date, download_dir)

  邮件监控可以添加try catch异常捕获,发生异常时发送邮件

  Python 编辑电子邮件内容并发送。我以前写过。可以参考以下:Python邮件发送

  ②编写cron任务

  打开crontab,将以下内容编辑到最后一行,保存退出

  Crontab 会自动实时更新任务列表。如果不放心,可以通过restart命令重启cron服务【参考文章开头】

  

  这里有个小建议,所有路径都填绝对路径

  ③ 效果监测

  如果 Python 代码没有问题,就会定期执行任务。

  建议可以单独在控制台运行自己的命令,没问题的时候写红色的cron任务列表即可。

  小一计划任务最终截图如下:

  底部是ftp文件下载,顶部是数据汇总统计

  

  题外话

  如果说平时的工作中有很多重复的任务,比如每日指标的采集、访问的汇总统计、邮件自动转发等。

  一旦您可以通过脚本为这些任务设置逻辑,自动化任务也可以实现它。最多就是每天关注一下邮件,看看有没有错误。

  原创不容易,请点个赞

  文章 首发:公众号【初级学习笔记】

  原文链接:普及一个小作业技巧,三步实现Python自动化

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线