设为首页收藏本站

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 175|回复: 0

CentOS下自动备份网站和数据库的脚本

[复制链接]
发表于 2016-5-30 07:02:31 | 显示全部楼层 |阅读模式
跟linux接触的时候越长,就越为她的简洁高效而折服,我手上有一台服务器安装的操作系统是CentOS5.4,上面部署的有网站和数据库应用,构架:centos+nginx+mysql+php,但网站数据多,手动备份的话太费就打算做自动运行的脚本,帮助我在每周的指定备份网站内容和数据库内容,用tar打包,然后再传到我ftp服务器上,整个备份过程就了。  假定这台服务器的网站目录为:/home/www,数据库程序路径为:/usr/local/mysql/bin,数据库名为:levil,ftp服务器为:ftphost,下面先来看完整的自动备份脚本(自动备份脚本保存位置为:/home/backup.sh):
  1.   #!/bin/bash

  2.   cd /home

  3.   WebBakName=web_$(date +ymd).tar.gz

  4.   tar zcvf $WebBakName www

  5.   SqlBakName=sql_$(date +ymd).tar.gz

  6.   /usr/local/mysql/bin/mysqldump -uusername -ppassword levil>backup.sql

  7.   tar zcvf $SqlBakName backup.sql

  8.   ftp -nv ftphost << EOF

  9.   user ftpname ftppass

  10.   put $WebBakName

  11.   put $SqlBakName

  12.   quit

  13.   EOF

  14.   rm -f backup.sql $WebBakName $SqlBakName
复制代码

  下面来给大家一一讲解:
  /home目录,定义WebBakName变量为网站备份的文件名,文件名格式为web_日期.tar.gz,定义SqlBakName变量为数据库备份的文件名,文件名格式为sql_日期.tar.gz,把整个网站目录www打包到WebBakName文件名中,使用mysqldump导出指定数据库内容到backup.sql,然后把数据库备份打包到SqlBakName文件中,本机备份工作至此结束,足够大的远程ftp空间的话,可以直接把备份文件下载到本机,但我建议直接备份到服务器上的ftp空间中,完全自动化备份,这时你需脚本中的ftphost、ftpname和ftppass分别替换成你的ftp信息,整个备份过程就了。
  接着输入chmod +x backup.sh给脚本添加权限,再输入:crontab -e编辑任务自动开始,比如我输入:
  00 05 * * 1 /home/backup.sh 就代表每周1的上午5点整该自动备份操作。
  在之后,你可以先把自动任务改为当前的接近,看自动备份脚本工作,测试OK的话以后就不用担心这台服务器任何问题数据丢失了,当然你的数据更新频繁的话,建议把自动备份为每日。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|BC Morning Website ( Best Deal Inc. 001 )  

GMT-8, 2025-8-25 15:10 , Processed in 0.016017 second(s), 22 queries .

Supported by Best Deal Online X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表