安装
yum -y install mailx
测试是否安装成功
[root@localhost tools]# which mail
/bin/mail
编辑配置文件
vi /etc/mail.rc
在文件末尾添加
set from=*****@163.com
set smtp=smtp.163.com
set smtp-auth-user=****@163.com
set smtp-auth-password=****
set smtp-auth=login
set ssl-verify=ignore
其中
from:对方收到邮件时显示的发件人
smtp:指定第三方发邮件的smtp服务器地址
set smtp-auth-user:第三方发邮件的用户名
set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码
smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
测试
echo '1233' | mail -s 'test.' -a test.txt 1439084907@qq.com
mail -s '主题' 1439084907@qq.com < test.txt
sed -i 's/\r$//' urfile
Gitlab自动备份,发邮箱提醒脚本:
#!/bin/bash
# gitlab 机房备份路径
LocalBackDir=/data/gitlabData/backups
#当前系统日期
DATE=`date +"%Y-%m-%d"`
#邮件写入的文件
mailcontent=$LocalBackDir/mail/mailcontent_$DATE
# 收件人邮箱
mailToUser=1439084907@qq.com
#Log存放路径
LogFile=$LocalBackDir/log/backup_$DATE.log
#新建日志文件
touch $LogFile
#追加日志到日志文件
echo "Gitlab auto backup at local server, start at $(date +"%Y-%m-%d %H:%M:%S")" > $LogFile
echo "---------------------------------------------------------------------------" >> $LogFile
#执行gitlab本地备份功能
gitlab-rake gitlab:backup:create SKIP=registry
# $?符号显示上一条命令的返回值,如果为0则代表执行成功,其他表示失败
if [ $? -eq 0 ];then
#追加日志到日志文件
echo "-----------------------------------Success!----------------------------------------" >> $LogFile
echo "Gitlab auto backup at local server, end at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
#写Email的正文内容
> "$mailcontent"
echo "GitLab Backup Daily Report,backup at local server Success ! Please Check your Email and read the following log file" >> $mailcontent
#读取mailcontent内容当做邮件正文 ,附件为Log文件
cat $mailcontent | mail -s 'Congratulation! GitLab auto backupFiles Success Report.' -a $LogFile $mailToUser
else
#追加日志到日志文件
echo "-----------------------------------Failed!---------------------------------------" >> $LogFile
echo "Gitlab auto backup at local server failed at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
#写Email的正文内容
> "$mailcontent"
echo "GitLab Backup Daily Report,Backup at local server failed Failed ! Please Check your Email and read the following log file !" >> $mailcontent
#读取mailcontent内容当做邮件正文 ,附件为Log文件
cat $mailcontent | mail -s 'Warning! GitLab Backup at local server Failed Report.' -a $LogFile $mailToUser
fi