標籤:nodejs linux shell指令碼 備份資料庫 定時
安裝mailx,靠它來發送郵件
yum install mailx
編輯設定檔
vim /etc/mail.rc #添加如下內容set [email protected]set smtp=smtp.163.comset [email protected]set smtp-auth-password=xxxset smtp-auth=login---說明from:對方收到郵件時顯示的寄件者smtp:指定第三方發郵件的smtp伺服器位址set smtp-auth-user:第三方發郵件的使用者名稱set smtp-auth-password:使用者名稱對應的密碼,有些郵箱填的是授權碼smtp-auth:SMTP的認證方式,預設是login,也可以改成CRAM-MD5或PLAIN方式
linux指令檔源碼(注意一定要直接在linux系統裡直接編輯,不然建立檔案的尾碼名會帶問號!!!):
#!/bin/bashecho "開始"#備份資料庫mysqldump -uroot -p資料庫密碼 資料庫名字 > /home/wwwroot/bak/`date +%Y_%m_%d`.sqlecho ‘備份資料庫完畢‘ #備份日誌(將記錄檔複製到備份資料庫的檔案夾裡)oldlog=/home/wwwlogst/web.lognewlog=/home/wwwroot/bak/`date +%Y_%m_%d`.logcp ${oldlog} ${newlog} echo "" > ${oldlog}echo ‘備份日誌完畢‘ #打包檔案夾name= /home/wwwroot/`date +%Y_%m_%d_%H_%M_%s`.zip old= /home/wwwroot/bakzip -r ${name} ${old} echo ‘打包檔案夾完畢‘#發送郵件echo `date +%Y_%m_%dDatabase Backup` | 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指令碼來備份資料庫和記錄檔並發送到郵箱