mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送

我原本是使用Vastar的第一个脚本方案来自动备份WordPress数据库并邮件发送的,不过后来因为更换服务器,不知道为什么造成了会二次备份并有错误提示。刚好Vastar又给了一个更简洁的方法,于是昨天就替换掉了。

不过Vastar的是同时备份数据库和网站文件的,而我是每天一备份数据库,网站文件是修改后才备份的,所以需要修改一下。虽然可以将网站目录设为空便可不备份网站文件,不过我决定省掉这些步骤。

修改后的代码如下

#!/bin/bash

WP_CONFIG=/your-space-dir/your-site-dir/wp-config.php

## 上面路径是为了获取数据库信息

## 也可以用下面这些直接填写,然后去掉上面那行

# S_DB_USER=db_user

# S_DB_PASSWORD=db_password

# S_DB_NAME=db_name

## 收信箱

TO=xxx@gmail.com

## 获取数据库信息

if [ -f WP_CONFIG ]

then

DB_USER=`grep "DB_USER"WP_CONFIG |awk '{print 2}'|awk -F ')' '{print1}'|sed "s/'//g"`

DB_PASSWORD=`grep "DB_PASSWORD" WP_CONFIG |awk '{print2}'|awk -F ')' '{print 1}'|sed "s/'//g"`

DB_NAME=`grep "DB_NAME"WP_CONFIG |awk '{print 2}'|awk -F ')' '{print1}'|sed "s/'//g"`

else

DB_USER=S_DB_USER

DB_PASSWORD=S_DB_PASSWORD

DB_NAME=S_DB_NAME

fi

# 切换到数据库备份目录

cd /your-space-dir/backup-store-dir

#删除之前在这个文件夹下的备份

if [ -e *.sql.gz ]

then

rm *.sql.gz

fi

## 备份数据库并使用gzip压缩,然后更改权限

## 使用2010-09-10.sql.gz的格式是为了使命名明显,可自定义

STAMP=`date +%Y-%m-%d`

mysqldump --add-drop-table -uDB_USER -pDB_PASSWORDDB_NAME |gzip > STAMP.sql.gz

chmod 600STAMP.sql.gz

## 发送邮件

(echo "Database Backup for my site";uuencode STAMP.sql.gzSTAMP.sql.gz)| mail -s 'Database Backup' $TO

exit

使用方法

很简单,将其扔到空间的某个位置(即代码中的backup-store-dir),权限设为700,然后配置一下定时任务即可。关于定时任务的使用,可以参照Vastar的第一个脚本方案。

一些小提示

Windows下的不要使用记事本来编辑以上代码,请使用UltraEdit等编辑器。编码使用utf-8,换行格式选择Unix,无BOM签名。

关于附件命令uuencode,切记其带两个参数,第二个参数附件标题必不可少,否则附件会为空。

关于定时任务的时间,如果需要准确时间备份,请计算上服务器时区。

在测试通过后,如果使用gmail,搭配过滤器,自动添加标签、存档,一切即可无声无息地进行。QQ邮箱在这方面好像也有一点长进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电厂各类设备原理动图,绝对让你看花眼!

▲ 火力发电流程原理▲ 核能发电流程原理▲ 水力发电流程原理▲ 光热发电原理▲ 垃圾发电原理▲ 蒸汽吸收式制冷原理▲ 尿素热解脱硝流程原理▲ 湿法脱硫工艺原理▲ 钢球磨煤机内煤的破碎原理▲ 碎煤机工作原理▲ 螺旋输送机(绞龙)原理▲ 多管电除尘器▲…

也谈MMU管理机制

1,结构: MMU存储器系统的结构允许对存储器系统的精细控制。大部分的控制细节由存在存储器中的转换表提供。这些表的入口定义了从1KB 到1MB 的各种存储器区域的属性。这些属性包括: 虚拟地址到物理地址映射 ARM 处理器产生的地址叫虚拟…

__ATTRIBUTE__ 你知多少?

_ATTRIBUTE__ 你知多少? 1 #include "stdio.h"2 3 /* 地址参考基准 */4 5 char r1;6 short r2;int refer;7 8 struct p9 { 10 int a; 11 12 char b; 13 14 short c; 15 16 }__attribute__((aligned(4))) pp; 17 /* 4字节对齐,a…

oracle 根据分隔符提取,oracle自定义函数按照某个分隔符拆分字符串

1.首先需要定义一个集合类型,我这里定义的是变长数组类型(VARRAY)create type type_splitstr is varray(1024) of varchar2(128);--注意,我这里之所以不用嵌套表类型(NESTED TABLE),是因为oracle官方文档有如下说明。--Nested Tables: The in…

跟几位大佬共进晚餐

这是一篇几个程序员大佬聚会的聚后感文章这次聚会比较唐突,连总从广州专门开车来深圳看望我们,我们约在了某个地铁站的八合里牛肉火锅店,这是一个周五的下午,理论上是非常简单的一个周五,但是因为这些男人女人的存在&a…

vue.js框架搭建

安装脚手架 前提条件:已安装node(4.0版本以上),npm a、全局安装 vue-cli npm install -g vue-cli 安装成功后可以通过命令行查看版本号,如图 b、初始化项目 新建一个文件夹命名为01vue,准备在此文件夹下存放…

oracle数据库imp导入,imp 导入 没有数据库

IMP-00009: 导出文件异常结束今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从…

MIK C语言面试两题

这是一个读者朋友在知识星球上提到的两个笔试题,第一个题目比较简单,关键在第二个题目「编程题」,我文章中写的解题思路应该不是最好的,希望大神读者们给出更好的答案,让这个充满乐趣的程序世界再增添一些乐趣吧&#…

[听尉迟方侃侃]平台

很长一段时期我都不能理解什么叫做平台。这个平台那个平台,随随便便的东西都要带上“平台”两个字以期蓬荜生辉。搞得人很是反感。 查了一下金山词霸,对平台一词有两个解释和软件行业相关: 解释1、[platform] ∶ 通常高于附近区域的平…

Swift基础学习(二)数据类型

在编程语言中,不同的数据信息需要不同的数据类型来存储,计算机内存中针对不同的数据类型它们所分配的内存大小是不同的,特定的值需要特定的类型来声明。 Swift 数据类型 内置数据类型 整数 - Int & UInt 根据一个整数变量占据的内存空间&…

看看大疆的C语言面试题

惯例,这笔试题也是一个读者朋友发给我的,简单看了下,并不觉得这是一个非常困难的题目,最近是校招准备的时候,很多人给我说发面试题对大家有帮助。这个题目面试官强调了这个跑在64位系统下。代码如下:#define mal(x,y) …

php三级栏目调用,织梦当前栏目调用二级、三级栏目且栏目高亮解决方法

在处理企业站的时候&#xff0c;经常发现要调用二三级栏目栏目&#xff0c;且需要高亮显示&#xff0c;具体实现方法如下。1、打开 \include\taglib\channelartlist.lib.php 找到$tpsql " reid$typeid AND ispart<>2 AND ishidden<>1 ";改成if($typeson…

RocketMQ实战(一)

阿里巴巴有2大核心的分布式技术&#xff0c;一个是OceanBase&#xff0c;另一个就是RocketMQ。在实际项目中已经领教过RocketMQ的强大&#xff0c;本人计划写一个RocketMQ实战系列&#xff0c;将涵盖RocketMQ的简介&#xff0c;环境搭建&#xff0c;初步使用、API详解、架构分析…

C面试总结文档

最近很多人有参加面试&#xff0c;面试就避免不了笔试&#xff0c;嵌入式面试的话&#xff0c;避免不了C语言&#xff0c;所以给大家准备了两份pdf C语言面试总结的文档。在本公众号回复 「C面试」获取pdf下载链接推荐阅读&#xff1a;专辑|Linux文章汇总专辑|程序人生专辑|C语…

linux下根据端口查进程,linux根据进程查端口,根据端口查进程

[roottest_environment src]# netstat -tnllup 能显示对应端口和进程Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemdtcp 0 0 0.0.0.0:6000 0.0.0.0:*…

程序员到底怎么了

我们是这样的一群人&#xff1a;每天都在“努力”的工作着&#xff0c;每天都和计算机打交道&#xff0c;泡在网上&#xff0c;打游戏&#xff0c;查资料&#xff0c;发微博。可是有一天&#xff0c;突然意识到&#xff0c;我们的未来在哪里&#xff0c;每个月那点可怜的工资&a…

SQLServer查询表结构

SELECT 表名case when a.colorder1 then d.name else end, 表说明case when a.colorder1 then isnull(f.value,) else end, 字段序号a.colorder, 字段名a.name, 标识case when COLUMNPROPERTY( a.id,a.name,IsIdentity)1 then √else end, 主键case when exists(SELECT 1 F…

来看看比尔盖茨当年写的BASIC解释器源代码吧,你就知道泰勒级数有什么用了...

几年前当我刚上大学那会&#xff0c;我曾经问过我一位学计算机同学的一个问题&#xff1a;计算机是如何计算诸如 或者 这种运算的&#xff1f;当初这个问题曾经困扰了我好长时间&#xff0c;这个问题并非是我当年在微积分课堂上解决的&#xff0c;而是直到我后来接触编程后才彻…

linux查看进程ppid,pidof命令从运行的进程中以名称查找出进程号PID/PPID横向大到小展示...

1.释义从运行的进程中以名称查找出进程号PID/PPID横向大到小展示2.系统帮助PIDOF(8) Linux System Administrators Manual PIDOF(8)NAMEpidof -- find the process ID of a running program.SYNOPSISSYNOPSISpidof [-s] [-c] [-n] [-x] [-m] [-o omitpid[,omitpid..]] [-o omit…

语言的本地化支持

Support channels on IRC and mailing lists exist for Ubuntu users whose first language is not English. You are welcome to join one of these or start your own. 对于母语不是英语的Ubuntu用户来说&#xff0c;已经有相应的邮件列表和IRC频道提供支持。欢迎你加入它们…