有了成功运行的爬虫后,希望能每天定时运行,且遇到错误时能及时发出提醒。

发出提醒

可以用mailx发出邮件做提醒。没有的话先安装Yum install mailx。

以qq邮箱为例,需要设置/etc/mail.rc,增加以下行:

1 set smtp=smtp.qq.com
2 set smtp-auth=login
3 set smtp-auth-user=user@qq.com
4 set smtp-auth-password=code //不是登录密码,是stmp的授权密码
5 set ssl-verify=ignore
6 set nss-config-dir=/etc/pki/nssdb //没有的话需要mkdir新建
7 set from="user@qq.com(nickname)"
8 set smtp-use-starttls=yes

同时还需要在qq邮箱中开启IMAP/STMP,并获得授权码:

在邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务中打开相关选项。

测试一下:mail xxx@aa.com,然后在subjuct后输入主题,回车输入内容,完事后输入.回车。发送成功。

或者:echo '邮件内容' | mail -s '邮件标题' 收件人邮箱。

或者:cat 邮件内容.txt | mail -s '邮件标题' 收件人邮箱

或者:mail -s '邮件标题' 收件人邮箱 < 邮件内容.txt

https://blog.csdn.net/yongren_z/article/details/85119088

https://www.cnblogs.com/huyihao/p/5543125.html

开始用outlook设置,折腾了半天还是失败,而且每次登陆都好慢,干脆放弃了。

还有一个选择是发微信,有空可以再研究一下。http://sc.ftqq.com/3.version

https://blog.csdn.net/qq_19645105/article/details/90173867

写BASH

 #!/bin/bash
workpath="/home/share/scraping/getlj"
cd $workpath
# 进入工作目录
python3 -save_todaylj.py >-getlj_err.txt
# 输出错误文件 todaydate=$(date +%F)
# 测试err文件中有无内容,如有发送提醒
if [ -s $workpath/-getlj_err.txt ];then
# `pwd`/getlj_err.txt也可,pwd=当前工作目录
    # -s等同于test -s测试是否存在文件且不为空,有非空则返回TRUE,在这里意味着有error记录
echo $todaydate:error
cat '2-getlj_err.txt' | mail -s "$todaydate getlj ERROR" cityfxckr@qq.com
else
echo $todaydate:ok
cat '1-ljszresult.txt' | mail -s "$todaydate getlj RESULT" cityfxckr@qq.com
fi # 邮件主题中包含变量时,一定要用双引号才行
# 需要将此段代码转换成linux模式即每行结尾只有\n(LF),而windows模式是\r\n(CRLF)运行会报错,
   notepad++的编辑-文档格式转换中可以转换
# 发送邮件的内容,此例中的txt文件,同样需要时linux模式,否则不会再正文发送,而会变成一个bin格式的附件

邮件主题中变量的设置:

https://stackoverflow.com/questions/20535024/how-to-insert-the-current-date-in-mail-command-in-linux

https://unix.stackexchange.com/questions/383722/adding-date-to-file-name-when-sending-email

https://stackoverflow.com/questions/35920673/sending-mail-with-subject-as-variable

test命令的使用:

https://www.jianshu.com/p/6d55b6c0f350

https://man.linuxde.net/test

https://linuxize.com/post/bash-check-if-file-exists/

if记得要有fi结尾。

定时运行

需要用到crontab功能。https://www.cnblogs.com/ftl1012/p/crontab.html

修改etc/crontab文件,增加要定时运行的程序,并将运行输出记录到runlog.txt中:

0 8 * * * wts . /home/0-rungetlj.sh>>/home/2-runlog.txt /etc/cron.daily

(关于linux的运行级别:https://blog.csdn.net/ltstud/article/details/78683523)

成功,这样每天就可以收到抓取的结果,或者是出现的错误以便及时修改。

小白的linux笔记8:linux自动运行爬虫并发送提醒邮件的更多相关文章

  1. [转载] 在Linux中,开机自动运行普通用户的脚本程序

    FROM:http://blog.csdn.net/sinboy/article/details/2466225 FROM:http://www.2cto.com/os/201006/50680.ht ...

  2. 【Linux笔记】Linux目录结构

    [Linux笔记]Linux目录结构   本文内容整理自网络,以作参考. /:根目录,位于linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib ...

  3. 小白的linux笔记7:批量运行复杂的linux命令组合——BASH简单使用法

    linux的BASH就相当于windows下的BAT文件,可以批处理命令.比如写好一个python脚本后,需要在运行时候加参数,但这个参数又不想每次输入,就可以用BASH的方式写好整条命令,然后直接运 ...

  4. Linux笔记(开机自动将kerne log保存到SD卡中)

    有时候为了测试机器的稳定性,需要煲机测试几天的情况,这个时候机器已经封装好,不能再接串口线出来. 为了追溯问题,就需要将log信息保存下来. 于是就需要这样一个功能:系统启动后,自动将kernel的l ...

  5. Linux笔记之——Linux关机命令详解(转)

    原文连接:http://www.jb51.net/os/RedHat/1334.html 在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重 ...

  6. [linux笔记]理清linux安装程序用到的(configure, make, make install)

    我作为一名经常和linux打交道的程序员,每次在linux安装软件都祈求可以用——apt-get,yum,brew等应用程序管理器安装,有的时候事与愿违,你只能自己编译安装-wtf,说好的美丽世界呢? ...

  7. linux笔记:linux系统安装-系统分区

    分区类型: 1.主分区:最多只能有4个. 2.扩展分区:最多只能有1个:主分区+扩展分区最多有4个:不能写入数据,只能包含逻辑分区. 3.逻辑分区. 格式化: 向磁盘中写入文件系统.会附带地清空磁盘中 ...

  8. linux笔记:linux软件包管理,软件安装位置

    linux软件包简介 软件包分类:1.源码包(用C语言等编写的源代码,没有进行编译):脚本安装包(对源码包进行了安装优化的源码包)优点:开源,可修改可以自由选择所需的功能编译安装,更适合自己的系统,稳 ...

  9. 【Linux笔记】linux crontab实现自动化任务

    在服务器中我们经常需要定时自动让程序自动进行数据备份.程序备份.执行某个进程等等操作,在linux服务器一般使用crontab实现,而windows下使用计划任务实现,crontab是linux系统下 ...

随机推荐

  1. DFS(深度优先搜索遍历有向图)-03-有向图-太平洋大西洋水流问题

    给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度.“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界. 规定水流只能按照上.下.左.右四个方向流动,且只能从高 ...

  2. Pycharm运行/调试程序说明

    1.字体调整(optional) File -> Settings ->Editor->Colors & Fonts -> Size 22 2.打开程序所在文件夹hw5 ...

  3. 2019中国大学生程序设计竞赛-女生专场(重现赛)部分题解C-Function(贪心+优先队列) H-clock(模拟)

    Function 题目链接 Problem Description wls 有 n 个二次函数 Fi(x) = aix2 + bix + ci (1 ≤ i ≤ n). 现在他想在∑ni=1xi = ...

  4. Kafka系列1:Kafka概况

    Kafka系列1:Kafka概况 Kafka是当前分布式系统中最流行的消息中间件之一,凭借着其高吞吐量的设计,在日志收集系统和消息系统的应用场景中深得开发者喜爱.本篇就聊聊Kafka相关的一些知识点. ...

  5. Spring-cloud微服务实战【七】:服务熔断与降级hystrix

      在之前的文章中,我们先后介绍了eureka,ribbon,feign,使用eureka集群的方式来保证注册中心的高可用,在eureka中使用ribbon进行负载均衡,使用feign接口替换手动编码 ...

  6. MVC ajaxfileupload 实现无刷新导入或上传功能

    直接上代码吧 前台 先引用 ajaxfileupload.js <script src="~/Scripts/ajaxfileupload.js"></scrip ...

  7. Web框架之Gin介绍及使用

    Gin是一个用Go语言编写的web框架.它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍. 如果你是性能和高效的追求者, 你会爱上Gin. ...

  8. bind() 理解 【转】

    bind()可稍后执行  call()  apply() 为了搞清这个陌生又熟悉的bind,google一下,发现javascript1.8.5版本中原生实现了此方法,目前IE9+,ff4+,chro ...

  9. [Effective Java 读书笔记] 第二章 创建和销毁对象 第六-七条

    第六条 消除过期引用 JAVA中依然会有 memory leak的,比如一个栈先增长再收缩,那么从栈中弹出的对象是不会被当做垃圾回收的,即时使用栈的程序不再引用这些对象.这是因为栈的内部维护着对这些对 ...

  10. TomCat控制台中文乱码及IDEA设置为UTF-8

    一.解决IDEA中的中文乱码 1.首先设置idea编辑器的编码: File-Setting设置如下 idea显示编码:windows默认用gbk所以idea显示默认为gbk编码,在 Help--Edi ...