首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过crontab运行时,脚本不会通过邮件给出结果

是因为crontab是一个用于定时执行任务的工具,它会在指定的时间间隔内自动运行脚本,但不会自动发送结果邮件。

要解决这个问题,可以在脚本中添加邮件发送功能。可以使用邮件发送库,如smtplib(Python)或者JavaMail(Java),来发送脚本的执行结果到指定的邮箱。

以下是一个示例的Python脚本,用于在脚本执行完毕后发送结果邮件:

代码语言:python
代码运行次数:0
复制
import smtplib
from email.mime.text import MIMEText

def send_email(subject, content, sender, receiver, smtp_server, smtp_port, username, password):
    msg = MIMEText(content)
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = receiver

    try:
        server = smtplib.SMTP(smtp_server, smtp_port)
        server.starttls()
        server.login(username, password)
        server.sendmail(sender, receiver, msg.as_string())
        server.quit()
        print("邮件发送成功")
    except Exception as e:
        print("邮件发送失败:" + str(e))

# 在脚本执行完毕后调用send_email函数发送邮件
send_email("脚本执行结果", "脚本执行成功!", "sender@example.com", "receiver@example.com", "smtp.example.com", 587, "username", "password")

在上述示例中,需要替换以下参数:

  • subject:邮件主题
  • content:邮件内容
  • sender:发件人邮箱
  • receiver:收件人邮箱
  • smtp_server:SMTP服务器地址
  • smtp_port:SMTP服务器端口
  • username:发件人邮箱用户名
  • password:发件人邮箱密码

通过在脚本中添加类似的邮件发送代码,可以实现在脚本执行完毕后通过邮件发送结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行

    背景 通过 crontab 定时运行 python 脚本来发送钉钉消息 https://www.cnblogs.com/poloyy/p/15565875.html 一开始的定时任务 */1 * * *...* python3 /Users/test.py 确定 Python 脚本是否可正常执行 命令行下敲 python3 /Users/test.py 发现是可以正常运行的 那为什么 crontab 不运行呢...是否存在 ls -alF /etc/crontab # 创建该文件 sudo touch /etc/crontab 以为搞定了!...结果一分钟后还是不行 验证 crontab 是否可真正执行 # 每分钟输出当前时间到time.txt上. */1 * * * * /bin/date >> /User/time.txt 一分钟后去看,...发现是有文件的,证明 crontab 没问题 关键点:绝对路径 一开始写的定时任务中,python3 是相对路径,这是不对的,应该用绝对路径 */1 * * * * /usr/local/opt/python

    1.2K10

    Linux学习–>如何通过Shell脚本实现发送邮件通知功能?

    #1、安装和配置sendmail 不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件。...aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3V5YW5nX3Blbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)] #2、使用shell脚本发送...fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)] 上面的命令是Ubuntu系统的mail命令的用法,但是在Center OS系统时,该命令有所不同 首先通过如下命令...aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb3V5YW5nX3Blbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)] #6、编写shell脚本监控执行任务然后邮件通知...可以参考我下一篇博客 Git学习–>如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果

    3.1K40

    linux学习第七十一篇:shell脚本通过域名获取证书的过期时间并邮件告警

    blog.csdn.net/X__Alone/article/details/80662679 最近碰到域名的证书过期导致域名用不了造成的事故,所以写了一个检测域名证书过期时间的脚本...本次是通过三个文件来实现的,一个是检测脚本,一个是存储域名的文件,一个是报警邮件脚本 检测脚本check.sh #!...then python mail.py 目标邮箱名 "服务器证书过期提醒" "域名证书 $yuming 剩下 $a 天过期,请迅速更新" fi done 告警邮件...','邮箱授权码','用来发邮件的邮箱',to,subject,content) if __name__ == "__main__": main() #####脚本使用说明###### #1...首先定义好脚本中的邮箱账号和授权码 #2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"

    1.6K20

    用于自动监控磁盘使用情况的 Shell 脚本

    在文章中,我们写一个 shell 脚本,它在 crontab 中指定固定时间间隔监控磁盘使用情况,并在报告达到指定的阈值时通过电子邮件发送报告。...测试磁盘使用情况的脚本 以下是测试磁盘使用情况并将报告发送到指定邮箱的脚本脚本的解释在代码片段之后给出。 [root@localhost ~]# vim disk-monitor.sh #!...根据结果,将向指定的邮箱发送一封电子邮件。.../disk-monitor.sh 自动化监控过程 手动运行脚本没有任何意义,因为我们希望自动运行该过程。自动运行该过程的最佳方法是将脚本添加到 crontab配置文件中。...总结 在文章中我们写了一个 shell 脚本,它在 crontab 中指定固定时间间隔监控磁盘使用情况,并在报告达到指定的阈值时通过电子邮件发送报告。

    1K10

    定时任务之crontab命令

    ,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置 /etc/crtontab   系统调度的任务一般存放在/etc/crontab这个文件下,里面存放了一些系统运行的调度程序,通过命令...:   0表示键盘输入   1表示标准输出   2表示错误输出   &表示后台执行   >>表示追加   >表示覆盖写 注意:   1、当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端...2、需要用户交互的命令不要放在后台执行,因为那样子机器将会在那一直等待   3、作业在后台运行时,一样会将结果输出在屏幕上,干扰你的正常工作。...查看crontab服务状态: service crond status 5、个人经验总结   我们使用这个命令大多都是运行相关的脚本文件,最常见的就是定时调用http请求进行数据采集或者数据库的备份等等...转载时请在文章页面明显位置给出原文链接

    1.2K20

    Linux之任务计划

    用过windows的同学应该都知道在控制面板中有一个“任务计划”选项,我们可以通过向导设置让计算机在某个时间点或者开机时运行某个脚本或者批处理等等,方便我们的日常管理监视工作;同样在Linux系统中,...我们可以使用at ,batch ,crontab , anacron等命令; 一、一次性执行任务命令at、batch 说白了就是任务只执行一次,就结束操作,不会循环执行其操作。...执行结果通过邮件发送给执行程序的账户。...这几个环境变量的定义是在 /etc/crontab文件中。其中$MAILTO是指定计划执行过程中发生错误或者有数据输出时发 送邮件到哪个用户。通常会在脚本中加入....计划书的输出和日志,如果用户的计划书在运行时有输出,用户是无法直接从终端上看 到的。

    2.5K40

    Linux使用笔记3-crontab添加定时任务

    linux中任务管理的软件有很多,个人比较倾向于crontab。简单来说,crontab就是linux下一个方便任务管理的工具,可以添加定时任务,执行脚本。 1....之后,在这个位置 /var/log/cron.log 就可以查看定时任务的文件日志文件了;   下面这个命令还可以查看crontab的状态 service cron status;   查看运行时的日志文件...,如果在日志文件中执行一条语句后出现:   No MTA installed, discarding output   则crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到邮箱里...,需要邮件服务器了,如果没有安装邮件服务器,它就会报这个错。   ...expire.ls logins.bad;bin/expire$#@62;expire.1st)   每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在

    1.1K50

    分享一次Linux任务计划crontab不执行的问题排查过程

    开发朋友一时之间也没空去研究项目奔溃的根因,只好由我这个运维先写一个项目进程自拉起脚本通过 Linux 任务计划每分钟检查一下进程是否存在来避免项目挂了没人管的情况。 ?...结果进程正常拉起了! 直接执行成功,而放到 crontab 就失败,经验告诉我肯定的脚本环境变量有问题了! ②、环境变量 于是在脚本里面载入环境变量: #!...③、系统邮件 经验告诉我,crontab 执行失败,如果没有屏蔽错误的话,会产生一个系统邮件, 位置在 /var/spool/mail/root 所以,我把 crontab 里面的 2>&1 这个屏蔽错误先取消掉...结果观察还是报了相同的错误!原来改完这个 sudo 并不会影响已经运行的 crontab,所以需要重启 crontab 服务刷新下设置: service crond restart 这下终于可以了!...当然,要记住在 crontab 中如果屏蔽了错误信息,就不会邮件了。

    2.6K30

    Linux命令之crontab

    Linux命令之crontab 1.crond简介 Linux系统上面有很多计划性的工作,比如在某个时间点需要执行某个动作,在Linux中,一般使用crontab命令来实现控制计划任务,通过crontab...我们可以看到,一共出现了4条结果,每条结果中都包含5个时间字段,第1条结果,就是指没隔6分钟执行一次该脚本,第4条结果表示每天晚上的01:00执行一次第4条命令。...最好在crontab文件的每一个条目之上加入一条注释,这样就可以知道它的功能、运行时间,更为重要的是,知道这是哪位用户的作业。...所以注意如下3点: 1)脚本中涉及文件路径时写全局路径; 2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: cat start_cbp.sh #!.../etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh 注意清理系统用户的邮件日志 每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户

    2.4K20

    crontab导致的频繁发送邮件的问题(r5笔记第20天)

    结果登录到服务器端之后查看,得到的结果如下: > crontab -l # Minute Hour Month Day Month Weekday Command ####...的使用,crontab中含有6个参数,分别代表分,小时,天,周,月,待运行的脚本。...按照这个配置还是很合理的,在大半夜也不会频繁发送不是很紧急的一些邮件造成不必要的干扰。从配置来看是每3个小时运行一次。 但是根据客户的反馈说发送的频率有些频繁了,在这一点上,问题就有些蹊跷了。...做了简单的沟通,最后明白,原来这里他们使用的另外一台服务器是一个类似代理的角色,其中配置着大量的crontab的设置,通过这个客户端能够控制各个服务端的一些数据运行情况,按照最初的约定,是3个小时运行一次脚本...那么为什么服务端又莫名其妙的启用了crontab设置呢,最后发现是在上周五的时候有个DBA做了一个crontab的测试,结果没有注意到已经在后台统一配置了,简单做了禁用问题就修复了。

    79040

    crontab日常使用梳理

    在手动执行任务时是在 当前shell环境下进行的,程序能够找到环境变量,而系统自动执行任务调度时,是不会加载任何环境变量的。因此,需要在shelll脚本中提供所有必要的路径和环境变量。...需要注意的主要有以下三点: -> 脚本中涉及文件路径时写全局路径; -> 脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: #cat start_cbp.sh...# tail -f /var/log/cron 上面的/var/log/cron只会记录是否执行了某些计划的脚本,但是具体执行是否正确以及脚本执行过程中的一些信息linux会通过邮件形式发送到给该用户。...对于root用户该邮件记录位于/var/spool/mail/root,通过以下命令可以查看最近的crontab执行情况。...# tail -f /var/spool/mail/root mail邮件一般只会记录脚本执行成功与否,如果执行失败,无法给出进一步的错误信息,这时需要我们将语句执行的错误信息重定向至文件中,这样可以很方便的查看错误信息

    1.3K80

    直接执行成功,crontab却执行失败

    常用的技术方案是写一个shell脚本,然后通过配置linux的crontab来定时执行脚本(关于crontab,太过于基础,本文不做讲解)。...问题 写了一个汇总数据并且发送邮件的shell脚本(/tmp/email.sh),手工执行是成功的,但是通过crontab执行却总是失败。 shell脚本如下: #!.../bin/bash echo $LANG >> /tmp/test_out crontab定时执行输出结果为: [空] 直接执行输出结果为: en_US.UTF-8 解决 方案就很明确了,强制设置环境变量...LANG的值即可,在原有shell脚本(/tmp/email.sh)中添加如下语句: export LANG="zh_CN.UTF-8" 再次使用crontab执行,邮件正常发送。...这时必须大胆怀疑是环境变量惹的祸,除了在shell脚本通过source或者export命令引入变量,也可以尝试在crontab中直接引入环境变量解决问题。如: 0 * * * * .

    4.4K20

    【腾讯云的1001种玩法】关于Web服务器Nginx反向代理GitHub Page的一点思考(bash脚本

    完成 3 关于crontab命令的相关小结 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。...最好在crontab文件的每一个条目之上加入一条注释,这样就可以知道它的功能、运行时间,更为重要的是,知道这是哪位用户的定时作业。 删除crontab文件 $crontab -r 3.5....所以注意如下3点: 脚本中涉及文件路径时写全局路径; 脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: cat start_cbp.sh !.../etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh 注意清理系统用户的邮件日志 每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户...在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+%Y%m%d’。

    2.3K10

    轻松使用crontab调度作业

    2. crontab命令 通过crontab 命令,我们可以在固定间隔的时间点执行指定的系统指令或 shell脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。...-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。 -i:在删除用户的crontab文件时给出确认提示。...文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量,而系统自动执行任务调度时,除了缺省的环境,是不会加载任何其它环境变量的...以下三点需要注意: 脚本中涉及文件路径时写绝对路径; 脚本执行要用到环境变量时,通过source命令显式引入,例如:#!...重定向输出邮件 缺省时,每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户。这样日积月累,日志信息会非常大,可能会影响系统的正常运行。

    70830

    Linux命令之Crontab——定时任务

    shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户...用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。...所以注意如下3点: 1)脚本中涉及文件路径时写全局路径; 2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: cat start_cbp.sh #!.../root ) 每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要。...在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’。

    1.2K10

    Linux crond 不执行原因分析

    为了定时监控Linux系统CPU、内存、负载的使用情况,写了Linux Shell脚本,当达到一定值得时候,定时发送邮件通知。...但是,让crond来周期性执行脚本发送邮件通知时,遇到了问题,在crontab -e里面加入了执行脚本之后,发现脚本并没有执行。 可是,通过手动执行Shell脚本命令(..../mimvp-email.sh)是正常的,因为手动执行脚本可以默认获取Linux的环境变量,但通过Crontab做的定时任务,则无法获取环境变量。...我以前是通过Shell脚本来解决这个问题的,比如用while...do循环,然后放在后台执行。但后来发现其实用flock或lockf方法更为简单。...test.php' 8、; 和 && 区别 “;” 和 “&&”是有区别的 “;”:不管cmd1执行的结果如何,都执行cmd2 “&&”:只有cmd1执行返回的结果是成功的,才执行cmd2 cmd1

    6.3K110

    Linux之crontab命令

    通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。...文件的每一个条目之上加入一条注释,这样就可以知道它的功能、运行时间,更为重要的是,知道这是哪位用户的定时作业。...在crontab文件中定义多个调度任务时,需要特别注环境变量的设置,因为我们手动执行某个任务时,是在当前shell环境下进行的,程序当然能找到环境变量,而系统自动执行任务调度时,是不会加载任何环境变量的...所以注意如下3点: 脚本中涉及文件路径时写全局路径; 脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:: cat start_cbp.sh #!...如:: 0 * * * * /etc/profile;/bin/sh /var/www/java/bin/restart_audit.sh 注意清理系统用户的邮件日志 每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户

    3.3K20
    领券