安装mailx,靠它来发送邮件
- yum install mailx
编辑配置文件
- vim /etc/mail.rc #添加如下内容
- set from=xxxx@163.com
- set smtp=smtp.163.com
- set smtp-auth-user=xx@qq.com
- set smtp-auth-password=xxx
- set smtp-auth=login
- ---说明
- from:对方收到邮件时显示的发件人
- smtp:指定第三方发邮件的smtp服务器地址
- set smtp-auth-user:第三方发邮件的用户名
- set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码
- smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式
linux脚本文件源码(注意一定要直接在linux系统里直接编辑,不然创建文件的后缀名会带问号!!!):
- #!/bin/bash
- echo "开始"
- #备份数据库
- MysqLdump -uroot -p数据库密码 数据库名字 > /home/wwwroot/bak/`date +%Y_%m_%d`.sql
- echo '备份数据库完毕'
- #备份日志(将日志文件复制到备份数据库的文件夹里)
- oldlog=/home/wwwlogst/web.log
- newlog=/home/wwwroot/bak/`date +%Y_%m_%d`.log
- cp ${oldlog} ${newlog}
- echo "" > ${oldlog}
- echo '备份日志完毕'
- #打包文件夹
- name= /home/wwwroot/`date +%Y_%m_%d_%H_%M_%s`.zip
- old= /home/wwwroot/bak
- zip -r ${name} ${old}
- echo '打包文件夹完毕'
- #发送邮件
- echo `date +%Y_%m_%d数据库备份` | mail -s `date +%Y_%m_%d备份邮件` -a ${name} 你的邮箱@qq.com
- echo '发送邮件完毕'
- echo "全部完毕"
nodejs 定时调用脚本的源码
- /**
- * Created by Administrator on 2018/2/25 0025.
- */
- var https = require('http');
- var schedule = require('node-schedule');
- var exec = require('child_process').exec;
- var cmdStr = 'sh /home/wwwroot/myemail.sh';//这里面写你要执行的命令就行
- var rule = new schedule.RecurrenceRule();
- // rule.second = [0,10,20,30,40,50];//隔十秒
- rule.hour =23;rule.minute =55;rule.second =0;//每天23点55分执行
- var j = schedule.scheduleJob(rule,function(){
- exec(cmdStr,function(err,stdout,stderr){
- console.log("已执行");
- });
- console.log('现在时间:',new Date());
- });