linux定时备份到邮箱,Linux自动备份网站文件和数据库上传到FTP空间同时发送到Email脚本...

news/2024/5/20 13:20:39/文章来源:https://blog.csdn.net/weixin_34472954/article/details/116876125

Linux自动备份网站文件和数据库上传到FTP空间同时发送到Email脚本

2014-01-05 14:53

分享人:老牛

f64547cba6a42478a0959ce4143b8ca3.png

本备份主要功能:

1.可以自动定时备份指定的网站数据跟数据库到指定的FTP空间!

2.自动删除旧的备份数据,可以随意设置保留天数!

3.数据库备份采取三保险,备份到FTP同时也备份到设置的EMAIL(附件),直接打包数据库,可到处数据库双备份!

MYSQL_USER=root                  #mysql用户名

MYSQL_PASS=123456                #mysql密码

MAIL_TO=whhack@whhack.com        #数据库发送到的邮箱

FTP_USER=whhack                  #ftp用户名

FTP_PASS=123456                  #ftp密码

FTP_IP=whhack.com                #ftp地址

FTP_backup=backup                #ftp上存放备份文件的目录,自己上ftp上面建

WEB_DATA=/home/www               #要备份的网站数据

开始前,需要安装或者事前的工作:

1.mkdir -p /home/backup #建立备份目录

2.安装Email发送组件 yum install sendmail mutt

3.安装zip压缩 yum install zip

4.安装crontab

yum -y install gcc gcc-c++ autoconf vixie-cron

yum -y install gcc gcc-c++ autoconf crontabs

#要修改的地方开始

MYSQL_USER=root                     #mysql用户名

MYSQL_PASS=123456                   #mysql密码

MAIL_TO=whhack@whhack.com           #数据库发送到的邮箱

FTP_USER=whhack                     #ftp用户名

FTP_PASS=123456                     #ftp密码

FTP_IP=whhack.com                   #ftp地址

FTP_backup=backup                   #ftp上存放备份文件的目录,这个要自己得ftp上面建的

WEB_DATA=/home/www                  #要备份的网站数据

#要修改的地方结束

#定义数据库的名字和旧数据库的名字

DataBakName=Data_$(date +"%Y%m%d").tar.gz

WebBakName=Web_$(date +%Y%m%d).tar.gz

OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz

OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz

#删除本地3天前的数据

rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz

cd /home/backup

#导出数据库,一个数据库一个压缩文件

for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do

(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)

done

#压缩数据库文件为一个文件

zip -r /home/backup/data.zip /usr/local/mysql/var/    #这里是数据库目录直接打包,可以选择性打包

zip -r /home/backup/sqldata.zip /home/backup/*.sql.gz

tar zcf /home/backup/$DataBakName  /home/backup/*.zip

rm -rf /home/backup/*.zip

rm -rf /home/backup/*.sql.gz

#发送数据库到Email,如果数据库压缩后太大,请注释这行

echo "主题:数据库备份" | mutt -a /home/backup/$DataBakName -s "内容:数据库备份" $MAIL_TO

#压缩网站数据

tar zcf /home/backup/$WebBakName $WEB_DATA

#上传到FTP空间,删除FTP空间5天前的数据

ftp -v -n $FTP_IP << END

user $FTP_USER $FTP_PASS

type binary

cd $FTP_backup

delete $OldData

delete $OldWeb

put $DataBakName

put $WebBakName

bye

END

保存以上代码脚本为aotoback.sh

这里顺便说下: bash脚本:/bin/sh^M:bad interpreter: No such file or directory

原因: 与一些windows文件在linux下打开后出现^M符号类似。

解决方法: 在vim中查看文件的fileformat, 如果为DOS则改为unix

set fileformat

set fileformat=unix

给备份脚本权限

chmod +x aotoback.sh

crontab 实现自动备份

crontab -e

每天晚上4点开始备份

00 4 * * * /home/aotoback.sh

下面说一下一些技巧:

如果你只想备份某一个数据库,可以建立一个只对你要备份的数据库有权限的用户,在上面填写此用户即可实现!

然后就是备份网站不需要连程序都备份,如果数据太大,那么备份时间又长,还会导致一些问题,可以只备份附件等目录即可,可以自行修改,灵活处理!

最后发一个DZX2备份的实例,可以参考:

#!/bin/bash

MYSQL_USER=webback

MYSQL_PASS=123456

MAIL_TO=whhack.com@gmail.com

FTP_USER=whhack

FTP_PASS=123456

FTP_IP=whhack.com

FTP_backup=web.com/day

DataBakName=Data_$(date +"%Y%m%d").tar.gz

WebBakName=Web_$(date +%Y%m%d).tar.gz

OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz

OldWeb=Web_$(date -d -32day +"%Y%m%d").tar.gz

rm -rf /home/backup/day/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/day/Web_$(date -d -3day +"%Y%m%d").tar.gz

cd /home/backup/day

for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do

(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} --skip-lock-tables | gzip -9 - > ${db}.sql.gz)

done

zip -r /home/backup/day/web001.zip /usr/local/mysql/var/web/

zip -r /home/backup/day/sql000.zip /home/backup/day/*.sql.gz

tar zcf /home/backup/day/$DataBakName  /home/backup/day/*.zip

rm -rf /home/backup/day/*.zip

rm -rf /home/backup/day/*.sql.gz

echo "数据库:web-mysql-beifen_$(date +"%Y%m%d")" | mutt -a /home/backup/day/$DataBakName -s "数据库:web-mysql-beifen_$(date +"%Y%m%d")" $MAIL_TO

WEB_DATA1=/home/wwwroot/web.com/data/attachment/forum/$(date -d -1day +"%Y%m/%d")/

WEB_DATA2=/home/wwwroot/web.com/data/attachment/album/$(date -d -1day +"%Y%m/%d")/

WEB_DATA3=/home/wwwroot/web.com/data/attachment/portal/$(date -d -1day +"%Y%m/%d")/

zip -r /home/backup/day/forum.zip $WEB_DATA1

zip -r /home/backup/day/album.zip $WEB_DATA2

zip -r /home/backup/day/portal.zip $WEB_DATA3

tar zcf /home/backup/day/$WebBakName /home/backup/day/*.zip

rm -rf /home/backup/day/*.zip

echo "每日附件:web-web-beifen_$(date +"%Y%m%d")" | mutt -a /home/backup/day/$WebBakName -s "每日附件:web-web-beifen_$(date +"%Y%m%d")" $MAIL_TO

/usr/local/php/sbin/php-fpm restart

ftp -v -n $FTP_IP << END

user $FTP_USER $FTP_PASS

type binary

cd $FTP_backup

delete $OldData

delete $OldWeb

put $DataBakName

put $WebBakName

bye

END

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

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

相关文章

申请证书提示连接服务器,浏览器提示“您与此网站之间建立的连接不安全”的解决方案来了...

原标题&#xff1a;浏览器提示“您与此网站之间建立的连接不安全”的解决方案来了网站搭建好以后&#xff0c;大家会发现网站在浏览器中打开的时候&#xff0c;地址栏会有一个不安全的提示&#xff0c;鼠标移上去会显示“您与此网站之间建立的连接不安全”&#xff0c;如下图所…

服务器网站关联数据库,服务器和数据库关联

服务器和数据库关联 内容精选换一换云服务器备份在支持崩溃一致性备份的基础上&#xff0c;同时支持数据库备份。文件/磁盘数据在同一时间点&#xff0c;通过数据库备份内存数据&#xff0c;能够保证应用系统一致性&#xff0c;如包含MySQL或SAP HANA数据库的弹性云服务器。暂不…

视频存储网站服务器配置,视频存储服务器配置

视频存储服务器配置 内容精选换一换安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具&#xff0c;将文件上传到云服务器。例如QQ.exe。在本地主机和Windows云服务器上分别安装数据传输工具&#xff0c;将文件上传到云服务器。例如QQ.exe。本地磁盘映射(推荐使用…

网站的服务器角色选哪个,云服务器选择服务器角色

云服务器选择服务器角色 内容精选换一换客户在华为云购买产品后&#xff0c;如果没有及时的进行续费或充值&#xff0c;将进入宽限期。如宽限期满仍未续费或充值&#xff0c;将进入保留期。在保留期内资源将停止服务。保留期满仍未续费或充值&#xff0c;存储在云服务中的数据将…

手把手教你创建个人网站

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;创建自己的网站其实非常简单&#xff0c;千万…

ServiceMesher 网站停止维护,原有博客已迁移到云原生社区

ServiceMesher 网站 [1] 因为其代码托管的 GitHub[2] 与网站发布服务器上的 webhook 程序已” 失联 “&#xff0c;网站托管服务器暂时无法登录&#xff0c;以致于网站无法更新。今天我花了一天的时间&#xff0c;将 ServiceMesher 上的所有博客都迁移到了云原生社区官网 cloud…

浅谈web网站架构演变过程

浅谈web网站架构演变过程 来自&#xff1a;cnblogs.com/xiaoMzjm前言我们以javaweb为例&#xff0c;来搭建一个简单的电商系统&#xff0c;看看这个系统可以如何一步步演变。该系统具备的功能&#xff1a;用户模块&#xff1a;用户注册和管理商品模块&#xff1a;商品展示和管理…

比收费还好用,6个自学python必看网站

比收费还好用&#xff0c;6个自学python必看网站 涛哥聊Python 昨天 以下文章来源于python数据分析之禅 &#xff0c;作者小dull鸟 python数据分析之禅 专注分享python爬虫、数据分析、自动化办公经验&#xff01; 点击上方蓝色小字&#xff0c;关注“涛哥聊Python” 重磅干…

我的文章被盗了,记一个盗取博文的LESE网站——台部落

起因是因为今天在用谷歌搜索的时候竟然以外的搜到了自己的文章&#xff0c;点进去一看&#xff0c;这不正是我的吗&#xff1f;第一反应意识到自己的博客被爬虫爬了&#xff0c;这个网站简直毫无廉耻&#xff0c;不尊重劳动成果。 链接 https://www.twblogs.net/u/5d4ab693bd9…

linux tomcat网站,Linux下安装tomcat并部署网站-Go语言中文社区

安装jdk&#xff1a;Oracle官方下载 https://www.oracle.com/technetwork/java/javase/downloads/index.htmlyum安装openjdk&#xff1a;1.查找可使用的jdk包&#xff1a;[rootlinux ~]# yum list |grep jdk2.选择对应版本的包安装&#xff1a;[rootlinux ~]# yum -y install j…

centos6.5 MySQL 服务器,centos 6.5怎样装置mysql?_网站服务器运转保护

centos 6.5装置mysql的要领&#xff1a;一、上传相干包(*.tar.gz等)运用相干软件上传或用Xshell衔接后下载敕令&#xff1a;yum install lrzsz二、装置mysql5.71、检察当地是不是装置了mysql&#xff1a;rpm -qa | grep mysql2、卸载当地自带的mysql&#xff1a;yum remove mys…

怎么在云服务器安装网站吗,云服务器怎么安装网站吗

云服务器怎么安装网站吗 内容精选换一换在云服务器上搭建网站后&#xff0c;部分客户通过本地网络访问网站时出现偶发性无法访问的情况。确认客户使用的本地网络。若客户的本地网络是NAT网络(本地主机通过NAT功能使用公网IP地址访问弹性云服务器)&#xff0c;可能会导致该问题。…

《前端5分钟》之使用pace.js美化你的网站加载进度条

前言最近做网站体验优化的时候突然发现一个好东西&#xff0c;pace.js(加载进度条插件)&#xff0c;gzip之后只有几kb&#xff0c; 简单好用&#xff0c;特地分享出来&#xff0c;也作为自己的一个学习总结。pace.js介绍pace.js是一个自动加载页面进度栏的小插件,它可以自动监视…

《前端5分钟》之使用纯css实现网站换肤和焦点图切换动画

今天我们来继续复盘一些工作中常用的css技巧和知识,以便我们可以更加优雅的用css实现富有动感的网站.你将收获•网站换肤设计方案介绍•:target伪类介绍和用法以及如何使用css实现网站换肤•transition动画以及如何用纯css实现焦点图动画效果展示1.网站换肤2.焦点图动画实现思路…

30分钟开发一款抓取网站图片资源的浏览器插件

前言 由于业务需求, 笔者要为公司开发几款实用的浏览器插件,所以大致花了一天的时间,看完了谷歌浏览器插件开发文档,在这里特地总结一下经验, 并通过一个实际案例来复盘插件开发的流程和注意事项. 你将收获 如何快速上手浏览器插件开发 浏览器插件开发的核心概念 浏览器插件的通…

前端:从零到一, 轻松把自己的网站部署到服务器

跑步本身就是一件孤独的事&#xff0c;他人再分享再加油&#xff0c;要跑到终点也只能倚仗自己的体力和意志&#xff0c;就像生活本来的样子。关注并将「趣谈前端」设为星标每早08:30按时推送技术干货/优秀开源/技术思维hi, 大家好, 我是徐小夕, 周末博学不打烊, 今天我们来分享…

推荐! 使用pace.js美化你的网站加载进度条

前言最近做网站体验优化的时候突然发现一个好东西&#xff0c;pace.js(加载进度条插件)&#xff0c;gzip之后只有几kb&#xff0c; 简单好用&#xff0c;特地分享出来&#xff0c;也作为自己的一个学习总结。pace.js介绍pace.js是一个自动加载页面进度栏的小插件,它可以自动监视…

资讯网站的设计与实现

一. mybatis和数据库库的结合 1. 所需的maven依赖及配置 使用MySQL做底层数据库&#xff0c;因此需要使用mysql-connector-java的jar包&#xff0c;实现JDBC连接。使用&#xff0c;mybatis将springboot与数据库整合&#xff0c;需要使用mybatis-spring-boot-starter的jar包。…

推荐!使用pace.js快速美化你的网站加载进度条

前言最近做网站体验优化的时候突然发现一个好东西&#xff0c;pace.js(加载进度条插件)&#xff0c;gzip之后只有几kb&#xff0c; 简单好用&#xff0c;特地分享出来&#xff0c;也作为自己的一个学习总结。pace.js介绍pace.js是一个自动加载页面进度栏的小插件,它可以自动监视…

《前端技巧复盘》使用纯css实现网站换肤和焦点图切换动画

今天我们来继续复盘一些工作中常用的css技巧和知识,以便我们可以更加优雅的用css实现富有动感的网站.你将收获•网站换肤设计方案介绍•:target伪类介绍和用法以及如何使用css实现网站换肤•transition动画以及如何用纯css实现焦点图动画效果展示1.网站换肤2.焦点图动画实现思路…