Linux 中计划任务把结果发送到你的邮箱

在生活工作中,我们会经常写一些任务计划,比如定期检查一下磁盘的使用情况,定期执行一些脚本、指等等,但是Linux系统中的机制是把结果以邮件的形式发送到用户的邮箱里,假如现在你出差了,但是你的计划任务还在公司的电脑上进行着,这个时候你该怎么办呢?接下来我介绍一下怎么用Linux系统给QQ邮箱、163邮箱等等发送邮件,这样的话你的计划任务就会把执行结果发送到你的邮箱里,让你随时随刻对你的主机了如指掌。


本文演示:

  • centos 7
  • qq邮箱

计划任务的书写看我前面的博客,超级详细


利用系统的mail(25号端口)服务发送

  1. 编辑/etc/mail.rc,输入下面的配置文件

    set from=设置用哪个邮箱发送邮件#收到邮件时显示的发件人
    set smtp=smtp.qq.com#邮箱的域名
    set smtp-auth-user=你的QQ邮箱账号#发邮件的用户名
    set smtp-auth-password=邮箱的POP3/SMTP服务的授权码
    set smtp-auth=login #SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式

    获取邮箱授权码的方式:登陆你的邮箱

    然后点击账户

    选择开启POP3/SMTP服务

    然后获取授权码

  2. 发送无正文邮件
    mail -vvv -s ”主题" 邮箱地址
  3. 发送有正文邮件
    mail -s "主题"  [email protected] < 文件(邮件正文.txt)
    cat 邮件正文.txt | mail -s 邮件主题  收件地址
    echo "邮件正文" | mail -s 邮件主题  收件地址
  4. 发送带附件邮件
    mail -s "主题"  收件地址  -a 附件 < 文件(邮件正文.txt) 

利用ssl协议发送

  1. 编辑/etc/mail.rc,输入下面的配置文件

    set from=设置用哪个邮箱发送邮件#收到邮件时显示的发件人
    set smtp="smtps://smtp.qq.com:465"#邮箱的域名及端口号
    set smtp-auth-user=你的QQ邮箱账号#发邮件的用户名
    set smtp-auth-password=邮箱的POP3/SMTP服务的授权码
    set smtp-auth=login #SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
    set nss-config-dir=/etc/pki/nssdb   #存放认证证书的地址
    set ssl-verify=ignore
  2. 邮箱发送格式同上

可能遇到问题

  1. mailx的版本太低

    [[email protected] ~]# rpm -qa mailx #查看自己的mailx版本
    mailx-12.5-19.el7.x86_64
    [[email protected] ~]# yum -y install mailx #安装最新版的mailx
  2. 域名解析不成功
    [[email protected](cyn) ~ ]# echo "今晚约吗?"|mail -vvv -s "真帅" [email protected]
    Resolving host /smtp.qq.com . . .Could not resolve host: /smtp.qq.com
    "/root/dead.letter" 11/330
    . . . message not sent.

    解决方法:
    a. 增加dns解析

    [[email protected](cyn) ~ ]# vim /etc/resolv.conf
    #在本文件中增加一条记录,必须写在第一个,因为这个文件时顺序执行,会解析第一个nameserver,第一个解析不了再去解析下一个
    nameserver 114.114.114.114
    nameserver 100.100.2.136
    nameserver 100.100.2.138
  3. 连接超时
    [[email protected](cyn) ~ ]# echo "今晚约吗?"|mail -vvv -s "真帅" [email protected]
    Resolving host smtp.qq.com . . . done.
    Connecting to 14.17.57.241:465 . . . connected Refused.
    . . . message not sent.

    解决方法:基本上都是网络问题了还有本身防火墙

    [[email protected] ~]# iptables -F
    [[email protected] ~]# setenforce 0


网易邮箱也可以,设置方法同QQ邮箱,下面介绍一下获取授权码
登陆网易邮箱,点击设置,开启POP3/SMPT服务,点击保存

点击客户端授权密码,再点击重置密码

获取授权码

但是网易邮箱会把发过去的邮件当成垃圾邮件处理,使用的时候需要注意。

原文地址:http://blog.51cto.com/13805636/2296425

时间: 2024-11-09 08:13:54

Linux 中计划任务把结果发送到你的邮箱的相关文章

Linux中计划任务、周期性任务设置

Linux中计划任务.周期性任务设置 计划任务:指在未来的特定时间里,执行一次某一特定任务.当然,如果同一任务需要在不同时间点执行执行两次.三次或多次,可以视为多个一次看待. 周期性任务:指某一任务需要周期性的执行.周期性可以是以分.时.天等为单位,但又不限于这些单位. 常用于执行计划任务的命令--at, batch, 与周期性任务相关的的命令crontabs. 1.at命令和batch命令的区别. at命令旨在特定的之间执行任务:batch命令设置的任务由系统选择空闲时间去执行,空闲时间默认为

linux中计划任务执行脚本

我使用的是ubuntu14.4,所以在ubuntu中一切正常,在其他linux系统中应该都差不多. 1 计划任务,crontab命令选项:     -u指定一个用户,     -l列出某个用户的任务计划,     -r删除某个用户的任务,     -e编辑某个用户的任务 2 cron文件语法: 分     小时   日       月       星期     命令         0-59   0-23   1-31   1-12     0-6     command     (取值范围,0

Linux中计划任务执行脚本crontab-简洁版

我使用的是ubuntu16,所以在ubuntu中一切正常,在其他linux系统中应该都差不多. 1 计划任务,crontab命令选项:     -u指定一个用户,     -l列出某个用户的任务计划,     -r删除某个用户的任务,     -e编辑某个用户的任务 2 cron文件语法: 分     小时   日       月       星期     命令         0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示

linux中计划任务管理

在linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间.指定的日期执行预先计划好的系统管理任务(如定期备份数据.定期开启服务等). RedHat 6.5系统中的计划任务是由at.crontab命令进行计划任务的设置,其中at命令为一次性计划任务,crontab命令是周期性的计划任务.(1) at命令(一次性的执行任务)使用at命令设置的计划任务只在指定的时间点执行一次,前提是需要开启atd系统服务,需要设置计划任务的时间.日期必须在当前系统的时间之后,否则将无法正确设置计

Linux中邮件报警配置

linux中邮件报警机制 在linux中报警机制是运维管理关键部分.我们一般是通过监控来发现问题,常见的监控软件如:zabbix是现在大家都在使用和准备使用的.如果不通过第三方软件做监控报警,我们就需要linux中自带的邮件发送功能. 以下报警配置为工作中,小心得体会.向大家分享下: 1.检查mailx 的版本信息大于12.*即可,否则需要另外更新安装 2.# vim /etc/mail.rc  中添加修改内容如下: set [email protected]             指定外部代

利用Linux中的计划任务+PHP网页程序(转)

利用Linux中的计划任务+PHP网页程序,实现对web服务器运行状况的监测[每5分钟监测一次,并邮件提醒]一.我的监测服务器环境:rhel5.5+apache2.2+php5二.功能描述:写一个PHP页面,实现如下功能:请求要监控的WEB服务器的某一个页面的内容,如果返回不到数据,或者返回的数据里没有包含我期望的代码[用于自定义错误页面时的情况],那我就认为WEB服务出问题了[宕机或者遭到内容改写攻击],然后就发送一个邮件出来,这个邮件可以和手机进行绑定[139邮箱可以做到]而我在计划任务里去

linux中C语言发送广播报文

2. 指令的解决方法: oute add -net 255.255.255.255 netmask 255.255.255.255 dev eth0 metric 1 或者 route add -host 255.255.255.255 dev eth0 需要用到函数:setsockopt(); setsockopt()函数,用于任意类型.任意状态套接口的设置选项值.尽管在不同协议层上存在选项,但本函数仅定义了最高的"套接口"层次上的选项. #include <sys/types

Linux 中怎么设置计划任务:cron 与 anacron

导读 在本篇中,我们会解释 cron 和 anacron,并向你展示如何在 Linux 中设置 anacron.我们也会比较这两个工具. cron 在 Linux 设置 cron - 是一个用于运行计划任务如系统备份.更新等的守护进程.它适合在那些 24X7 不间断运行的机器如服务器上运行的计划任务. 命令/脚本被写在 cron 任务脚本中,它是在crontab 文件中被安排的.系统默认的 cromtab 文件是/etc/crontab ,但是每个用户也可以创建自己的 cromtab 文件来在特

linux中进程和计划任务的管理

前言: 在linux中,为了更好的了解和使服务器有序运行,管理员需要对进程和计划任务做相应的操作,以便能够更好的完成维护任务. 这里我们做一些简单的练习. 一.管理系统中的进程. (1)启动系统中的portmap服务,然后使用kill命令终止它的运行. Kill  进程的PID号 (2)查找系统中CPU占用率超过80%的进程,并强行终止该进程. 系统中一般是没有CPU超过80%的进程,可以从http://www.cpuburnin.com/downloads/cpuburn-in.tar.gz网