nodejs 定時調用shell腳本來備份數據庫和日誌文件並發送到郵箱
阿新 • • 發佈:2018-03-17
nodejs linux shell腳本 備份數據庫 定時 安裝mailx,靠它來發送郵件
yum install mailx
編輯配置文件
vim /etc/mail.rc #添加如下內容 set [email protected] set smtp=smtp.163.com set [email protected] 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()); });
nodejs 定時調用shell腳本來備份數據庫和日誌文件並發送到郵箱