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

前端之家收集整理的这篇文章主要介绍了CentOS下自动备份网站和数据库的脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

基本构架:centos+Nginx+MysqL+PHP,但由于网站数据比较多,自己手动备份的话太费时间,所以就打算做一个自动运行的脚本,帮助我在每周的指定时间备份网站内容数据库内容,用tar打包,然后再传到我另外一个ftp服务器上,整个备份过程就完成了。

  假定这台服务器的网站目录为:/home/www,数据库程序路径为:/usr/local/MysqL/bin,数据库名为:levil,ftp服务器为:ftphost,下面先来看完整的自动备份脚本(自动备份脚本保存位置为:/home/backup.sh):

  #!/bin/bash

  cd /home

  WebBakName=web_$(date +%y%m%d).tar.gz

  tar zcvf $WebBakName www

  sqlBakName=sql_$(date +%y%m%d).tar.gz

  /usr/local/MysqL/bin/MysqLdump -uusername -ppassword levil>backup.sql

  tar zcvf $sqlBakName backup.sql

  ftp -nv ftphost << EOF

  user ftpname ftppass

  put $WebBakName

  put $sqlBakName

  quit

  EOF

  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的话以后就不用担心这台服务器出现任何问题导致数据丢失了,当然如果你的数据更新比较频繁的话,建议把自动备份时间调整为每日。


==

如果有多个网站和多个数据库

可以定义不同的变量名。

==


---------- 招募未来大神 ----------


欢迎 勤奋好学,肯钻研,又有利他之心,乐于助人PHPer加入PHP技术问答群

教学相长,共同进步,加入时留言:51cto

PHP技术问答群 QQ群:292626152

==

猜你在找的CentOS相关文章