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

  接触CentOS已经有几个月的时间了,使用了太久的windows在刚接触linux命令行界面的时候还真有点不太适应,但到最后也就应了大家的那句话,跟linux接触的时候越长,就越为她的简洁高效而折服,我手上有一台服务器安装的操作系统是CentOS5.4,上面部署的有网站和数据库应用,基本构架: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的话以后就不用担心这台服务器出现任何问题导致数据丢失了,当然如果你的数据更新比较频繁的话,建议把自动备份时间调整为每日。

时间: 2025-01-29 21:50:03

CentOS下自动备份网站和数据库的脚本的相关文章

Linux下自动备份网站及数据库并发送到邮箱/ftp

自动备份网站及数据库并发送到邮箱 1.SSH登录到VPS,进入到/home/backup目录,新建文件backup.sh,粘贴如下代码并保存: #!/bin/bash # 进入到备份文件夹 cd /home/backup # 创建存放备份文件和数据库的文件夹,并修改权限为777 mkdir -m 777 -p ./backup$(date +"%Y%m%d") # 将需要备份的文件复制到备份文件夹内 cp -r /home/wwwroot ./backup$(date +"%

centos自动备份网站文件与mysql数据库脚本

案例一:shell+cron实现MySQL自动备份且自动删除N天前备份  代码如下 复制代码 #!/bin/sh DUMP=/usr/local/mysql/bin/mysqldump OUT_DIR=/home/ldl/xxx/backup/ LINUX_USER=ldl DB_NAME=ldl DB_USER=ldl DB_PASS=xxx #How much days backup most DAYS=1 #Core of script cd $OUT_DIR DATE=`date +%Y

FTP自动备份网站数据

第一步 新建FTP备份任务 下载并运行<绿色FTP数据备份>点击"FTP备份"按钮,选择"新建FTP备份任务",会弹出参数设置菜单,而后设置网站服务器的FTP用户名和密码.如果是虚拟主机用户,就需要填写空间提供商提供的FTP账号密码;有自有服务器的用户则需要自己使用serv-u等程序新建一个FTP用户.在"域名或IP地址选项"中,可以填写已经绑定IP地址的域名,也可以直接设置服务器的Ip地址.参数填写完成后,点击"连接&qu

Linux VPS主机定时自动备份网站及MYSQL数据库的脚本

从我们开始学习建站开始,不论我们是用免费的虚拟主机,还是省吃俭用购买的付费主机,以及我们在更大的项目需要转向VPS或者服务器存储:不论我们是不是技术科班出身,还是跟老左一样,看到网友们都有自己的网站于是热情澎湃的也搭建一个玩玩:不论我们的网站是大还是小,有盈利还是没有盈利,都要学会基本的自我维护,尤其是网站数据的备份.   我们不要过分的依赖和信任主机商给我们提供的备份,即便我们购买的很牛.很贵的服务商的产品,他们也可能会由于各种的可能性导致数据丢失或者奔溃的情况,我们可以选择定期手工备份或者用

Centos使用crontab定时任务自动备份网站

不需要什么专业的软件,使用centos自身的命令及服务就可以完成每天的自动备份. 下面说下常见的备份方法: 1. 文件备份 用tar命令压缩文件做备份: #tar -zcvf backup.tar.gz dir1 dir1为要备份的目录或者文件 备份恢复的命令: #tar -zxvf backup.tar.gz 2. 数据库备份 大多数数据库系统有命令支持数据库的备份和恢复. 比如mysql, 数据库的备份命令为:  代码如下 复制代码 #mysqldump -host=dbhost -user

Centos中crontab自动备份网站实现方法

crontab简介 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行.该词来源于希腊语 chronos(χρνο),原意是时间. 通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行.这类作业一般称为cron jobs. crontab用法 crontab的格式如下面:  代码如下 复制代码 f1 f2

在Windows下自动备份PostgreSQL的教程_数据库其它

背景在我工作上一个使用PostgreSQL数据库的项目上需要一个自动化系统来每天执行备份.经过一番研究决定通过创建一个Windows批处理文件并添加到Windows计划任务中来实现. 下面是具体步骤: 怎样配置第一步: 下载批处理文件. 第二步: 你可以通过一个简单的命令(schtasks /?查看帮助)或者使用图形界面(开始-控制面板-系统和安全-管理工具-任务计划程序)运行任务计划管理工具,还可以在%SYSTEMROOT%\System32目录下双击Taskschd.msc来启动它.   第

如何让系统自动备份网站数据经验分享

重生以后给自己网站备份数据用了一个很土的办法,用到了WINRAR批处理备份的功能,希望给有些朋友能用的着. 我的服务器配置是windows2003+IIS+PHP+MYSQL5 首先服务器里需要装个WINRAR,在WINRAR安装目录下建立个批处理文件(gamefxp.bat)件内容为: echo net stop iisadmin /y net stop mysql winrar a -ag-YY.MM.DD d:\bak\gamefxp\gamefxpdata D:\mysql\data\g

如何自动备份网站数据和数据

背景 网站的数据就是网站的灵魂,可是数据总是会因为各种原因,如服务器损坏,人员误操作而丢失 ,站长们最需要的就是能及时备份自己的数据.对于win服务器下的自动数据备份,网站文件,自然是比较好备份的,那么如果数据库也可以自动备份,那就基本实现完美自动备份. 阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务.用户可以通过调用API,在任何应用.任何时间.任何地点上传和下载数据,也可以通过用户Web控制台对数据进行简单