linux-ubuntu添加定时任务发送邮件(heirloom-mailx、s-nail、crontab)

文章目录

  • 前言
  • 一、配置邮件工具(heirloom-mailx 或 s-nail 或 mailx 等,选其一即可,)
    • (1)安装heirloom-mailx
    • (2)安装 s-nail
  • 二、配置heirloom-mailx、s-nail
  • 三、编写shell任务
  • 四、加入crontab
  • 总结


前言

如题:完成了ubuntu定时发送邮件任务。
其中包括:apt install无源报错、apt-get update 无公钥报错、获取邮箱 smtp 授权码、发送邮件、编辑shell、crontab设置


以下是本篇文章正文内容,下面案例可供参考

一、配置邮件工具(heirloom-mailx 或 s-nail 或 mailx 等,选其一即可,)

建议安装s-nail

(1)安装heirloom-mailx

sudo apt install heirloom-mailx 
#如果报错package has no installation candidate

在这里插入图片描述
#则需要添加源 这里可以选择添加其它源 此处仅为例子

sudo vim /etc/apt/sources.list
	deb http://cz.archive.ubuntu.com/ubuntu xenial main universe
sudo apt-get update
#如果报错GPG error:The following signatures couldn‘t be verified because the public

在这里插入图片描述

#需要添加公钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 后面接报错的 NO_PUBKEY
最后成功安装

在这里插入图片描述

(2)安装 s-nail

sudo apt install s-nail 

二、配置heirloom-mailx、s-nail

sudo vim /etc/s-nail.rc
末尾添加
// s-nail.rc
set from="[email protected]"
set smtp="smtp.163.com"
set smtp-auth-user="[email protected]"
set smtp-auth-password="xxx"
set smtp-auth=login
授权需要开启邮箱smtp功能 获取授权码

linux-ubuntu添加定时任务发送邮件(heirloom-mailx、s-nail、crontab)_第1张图片
测试是否发送成功

echo date "邮件内容" | heirloom-mailx -vs "标题" xxx@163.com
echo date "邮件内容" | s-nail -s "标题" xxx@163.com

三、编写shell任务

此处以发送ip为例:

#新建shell
vim ipnow.sh
#! /bin/bash
# 获取要监控的本地服务器IP地址
IP=`ip a | grep inet | grep -vE 'inet6|127.0.0.1|172' | awk '{print $2}'`
time_now=$(date "+%Y-%m-%d %H:%M:%S")
echo "IP地址:"$IP | heirloom-mailx -vs "$time_now : ip地址" [email protected]

测试
bash ipnow.sh

四、加入crontab

语法规则 *代表任意 /每隔 0和7都代表星期日

分钟 小时 日期 月份 星期 命令
0-59 0-23 1-31 1-12 0-7 命令
crontab -e
*/10 * * * * /home/user/ipnow.sh#每10分钟执行一次
30 8 * * * /home/user/ipnow.sh#每天8点半
@reboot sleep 300 && /home/user/ipnow.sh #开机 延时300s 执行
# ^O Write Out + enter
# ^X Exit  

总结

本文简单介绍了heirloom-mailx发送邮件和crontab定时执行shell的方法,而其中涉及到详细的 echo、awk格式、crontab时间等请另外查询。

你可能感兴趣的:(linux,linux,ubuntu,服务器)