nodejs mysql备份_nodejs 定时调用shell脚本来备份数据库和日志文件并发送到邮箱

本文介绍了如何使用Node.js定时调用Shell脚本,进行MySQL数据库的备份,日志文件的复制,并通过mailx发送备份文件到邮箱。详细步骤包括设置mailrc配置,编写Linux备份脚本,以及实现Node.js定时任务的代码。
摘要由CSDN通过智能技术生成

安装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());

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值