`
liuxingguome
  • 浏览: 27030 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

CentOS自动备份

 
阅读更多

CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中

投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-12-23 我要评论


这篇文章主要介绍了CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中,本文脚本比较实用,其它Linux系统也可参考,需要的朋友可以参考下
.
.


一、安装Email发送程序




复制代码 代码如下:


yum install sendmail mutt




二、安装FTP客户端程序


本脚本需要用到FTP客户端程序将文件上传到FTP空间上面,因此必须安装FTP客户端,否则将出现ftp命令无法找到的错误。
安装步骤请参考:《CentOS提示ftp:command not found》


三、在/root目录下新建脚本文件:AutoBackupToFtp.sh,内容如下:



复制代码 代码如下:


#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root                 #mysql用户名
MYSQL_PASS=123456               #mysql密码
MAIL_TO=xxxxx@gmail.com         #数据库发送到的邮箱
FTP_USER=ftpuser                #ftp用户名
FTP_PASS=ftpuserpassword        #ftp密码
FTP_IP=xxx.xxx.xxx.xxx          #ftp地址
FTP_backup=backup               #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/wwwroot          #要备份的网站数据,如果是使用lnmp安装包,则默认这个为网站目录
#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字
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
#压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
#发送数据库到Email,如果数据库压缩后太大,请注释这行
echo "Content:This email is auto send by vps..." | mutt -a /home/backup/$DataBakName -s "Subject:VPS Database Backup" $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



四、配置

给脚本添加执行权限:


复制代码 代码如下:


chmod 774 /root/AutoBackupToFtp.sh



利用系统crontab实现每天自动运行:


复制代码 代码如下:


crontab -e



输入以下内容:


复制代码 代码如下:


00 02 * * * /root/AutoBackupToFtp.sh



其中00 02为时间分/小时,可自行修改,例如:30 12 ***,就是每天12.30运行这个脚本。
分享到:
评论

相关推荐

    Centos7.6下设置Oracle定时自动备份和sudo设置.docx

    Centos7.6 下 Oracle 定时自动备份和 sudo 设置 本文将详细介绍 Centos7.6 下 Oracle 定时自动备份和 sudo 设置的过程。该过程包括编写数据库备份脚本文件、设置定时、sudo 设置等多个方面。 编写数据库备份脚本...

    ubuntu/centos自动备份mysql.txt

    服务器上没做数据库的自动备份,那你就等着删库跑路了,文章教你如何在ubuntu、centos服务器上自动备份mysql,按步骤复制粘贴即可!

    Linux(Centos)全自动异地备份数据(WEB+Mysql).pdf

    综合以上知识点,该文件应当详细描述了一个基于CentOS系统的自动备份解决方案,具体实施步骤可能包括以下内容: a. 安装必要的备份工具,比如lftp。 b. 编写Shell脚本(autobackup.sh)来执行备份任务。 c. 通过...

    CentOS7下 MySQL定时自动备份的实现方法

    在CentOS7环境下,确保MySQL数据库的安全性和稳定性至关重要,其中之一的方法就是实现定时自动备份。这样,即使出现意外的数据丢失或损坏,也能迅速恢复到备份时的状态。本文将详细介绍如何在CentOS7上设置MySQL定时...

    CentOs7下 mysql5.7自动备份数据库脚本

    CentOs7下 mysql5.7自动备份数据库脚本

    Oracle for Centos7 auto backup

    这个脚本实现在centos7.2 系统上使用rman 定时备份的脚本,脚本默认任务是凌晨每日凌晨 2 点执行。需要和另一修改数据库归档的脚本一起使用,实现自动配置数据库和生成rman备份脚本及备份目录。判断数据库是否为归档...

    oracle数据库自动备份上传至FTP服务器

    "oracle数据库自动备份上传至FTP服务器" Oracle 数据库自动备份上传至 FTP 服务器是指通过 Shell 脚本来实现对 Oracle 数据库的自动备份,并将备份文件上传至 FTP 服务器上,以防服务器出现故障,导致数据库无法...

    linux centos MySql备份和恢复方案.zip

    - **计划和自动化**:设置定期备份计划,并考虑自动化备份过程,减少手动操作出错的可能性。 - **增量和差异备份**:根据需求,可以采用增量或差异备份,只备份自上次全量备份以来更改的数据,节省存储空间。 - **...

    centos MYsql 备份计划

    mysql 自动备份计划 crontab 中设定脚本执行计划就行

    CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中

    本文将详细介绍如何在CentOS操作系统中使用Shell脚本来自动化备份网站文件和数据库,并将这些备份上传到FTP服务器。这个方法同样适用于其他Linux发行版。 首先,我们需要安装必要的软件组件: 1. **Email发送程序*...

    mysql8备份-centos8.zip

    - 备份脚本:可能是bash脚本,用于自动化备份过程,包括使用上述的mysqldump或mysqlpump。 - 数据库配置文件:备份的my.cnf文件,包含了MySQL服务器的配置信息。 - 日志文件:如mysql错误日志,用于诊断备份过程中...

    linux centos MySql备份和恢复方案.7z

    - 配置报警机制,当备份或恢复失败时,自动通知管理员。 以上就是关于"Linux CentOS MySql备份和恢复方案"的知识点详解,这些内容对于任何在Linux环境中管理MySQL数据库的IT专业人员都是至关重要的。通过合理备份...

    CentOS系统下如何设置mysql每天自动备份

    本文将详细介绍在CentOS系统中设置MySQL数据库每天自动备份的步骤,帮助你实现自动化数据保护。 首先,我们理解一下备份的重要性。备份是为了防止由于人为错误、系统故障、硬件损坏等原因导致的数据丢失。通过定期...

    网络设备配置自动备份.pdf

    网络设备配置自动备份是指通过一种工具或脚本自动化地将网络设备的配置文件保存下来的过程,目的是为了在设备发生灾难性故障时能够快速地恢复网络,确保网络服务的连续性和稳定性。这种自动化备份是网络工程师和运维...

    centos7上mysql数据库全自动备份(不能用你抽我)

    本shell脚本是在centos7上测试的,只需要往脚本的变量区添加用户名、密码,备份路径、即可一键对linux上的mysql5.7数据库实现自动备份所有数据库,无论你的mysql有多少个数据库,都给你自动识别出来,并帮你备份掉。...

    centos7+Tomcat+MySQL+nginx电子商务站点部署及rsync备份

    ### centos7+Tomcat+MySQL+nginx电子商务站点部署及rsync备份 #### 一、项目说明 本文档旨在提供一套完整的基于CentOS 7操作系统、Tomcat应用服务器、MySQL数据库服务器以及Nginx反向代理服务器的电子商务站点部署...

    Centos7内核升级到5.4.13版本自动化脚本

    本文将详细介绍如何在CentOS 7上自动升级内核至5.4.13版本,基于提供的资源,即`update_kernel.sh`脚本和`kernel`目录。 首先,CentOS 7默认使用的内核版本为3.10,而5.4.13是一个较新的稳定版内核,提供了更多的...

    backup(centos定时任务脚本).sh

    附件三:数据库定时备份脚本,仅供个人学习参考最终解释权归博主所有。

    Centos7备份文件时备份文件加入备件日期

    - 定期执行自动化备份,例如使用cron定时任务。 - 将备份存储在不同的物理位置,以防止单点故障。 - 使用压缩命令(如`gzip`或`tar`)减少磁盘空间占用。 - 考虑使用版本控制系统(如Git)来跟踪文件的更改历史。 ...

    linux_ORACLE数据库自动备份

    【Linux下ORACLE数据库自动备份】的实现方法主要涉及以下几个关键知识点: 1. **环境准备**:在Linux系统,如Redhat或CentOS等64位环境下,首先需要确保Oracle数据库服务正常运行,并且拥有足够的磁盘空间进行备份...

Global site tag (gtag.js) - Google Analytics