linux下Vps自动备份web和mysql数据库的脚本_Linux

用Vps什么事都要自己费心,备份也是。像Linode里的备份服务是要收费的,一个月是5美元。与其花这5美元,不如自己丰衣足食。为服务安装上了Dropbox,设定为每天4:00-6:00 开启同步服务。在之前运行两个脚本,自动备份web文件夹和mysql数据库。
两个脚本都是备份文件到/root/Dropbox/backup目录里,并自动删除10天前的备份。web备份是每周行一次,删除30天前的备份。

一、备份WEB文件夹

1、备份/home/users/public_html目录
2、修改crontab为每周第一天3:22时运行

复制代码 代码如下:

22 3 * * 0 root run-parts /etc/cron.weekly

3、复制脚本到/etc/cron.weekly目录
4、修改权限

复制代码 代码如下:

chmod 0755 /etc/cron.weekly/webbackup.sh

5、脚本如下

复制代码 代码如下:

#!/bin/sh
filename=`date +%Y%m%d`
backup_dir="/root/Dropbox/backup/web"
#delete all files 10 days ago
find $backup_dir -mtime +30 -name "*" -exec rm -rf {} \;
#each user you want backup
users="baidu sina"
for user in ${users}; do
tar zcvf $backup_dir/$user$filename.tar.gz /home/$user/public_html
done

6、注意filename那句不是单引号,在tab键上方
7、要备份的用户的public_html目录,就把该用户填入users

二、Mysql数据库每日备份

1、为了安全,新建用户backup,用强密码(自动生成即可),全局权限为select,lock tables
2、每日3:00开始执行,修改crontab
3、复制脚本到/etc/cron.daily
4、修改权限
5、脚本内容

复制代码 代码如下:

#!/bin/sh
dbuser="backup"
dbpassword="youpassword"
datas="db1 db2 db3"
filename=`date +%Y%m%d`
bin_dir="/usr/local/mysql/bin"
backup_dir="/root/Dropbox/backup/mysql"
#delete all files 10 days ago
find $backup_dir -mtime +10 -name "*" -exec rm -rf {} \;
#Do each database backup
for data in ${datas}; do
$bin_dir/mysqldump --opt -u$dbuser -p$dbpassword $data | gzip > $backup_dir/$data$filename.sql.gz
done

6、同上一个第6条
7、要备份的数据库填入datas

三、感受

因为都在美国的原因,备份到dropbox的速度很快,一个10M的文件备份到dropbox,从开启dropbox服务,马上刷新dropbox的网站就可以看到了。
如果流量很紧张的话,也可以设定dropbox为每周运行,或每5天运行等。应该是需要设定要备份周期,或者结合起来使用。

时间: 2024-12-27 07:44:38

linux下Vps自动备份web和mysql数据库的脚本_Linux的相关文章

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

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

linux下oracle自动备份脚本

linux下oracle自动备份脚本  vi /home/oracle/backup.sh   //编写脚本 以下为脚本内容 time=` date +"%Y%m%d%H%M" ` //变量time 获取当前系统时间 su - oracle -c "exp hbskjt_0113/password owner=hbskjt_0113 file=/home/oracle/hbskjt_$time.dmp"  //导库脚本 cd /home/oracle tar zcv

用批处理实现自动备份和清理mysql数据库的代码_Mysql

有网友问我在win2003下如何自动备份MySQL数据库,既然是自动备份,那肯定得写脚本.我想了想,这个并不是很困难,是很容易实现的,备份可以用脚本实现,那自动又该如何实现呢?也很简单,就用windows自带的"任务计划"功能,设定一个时间,让系统定时跑脚本,不就实现了自动备份数据库的功能了吗? 不过到现在已经有很多的mysql备份软件,例如我比较喜欢使用的是护卫神的好备份软件. 下载地址:http://www.jb51.net/softs/42944.html 首先把脚本代码贴出来:

Linux下用C语言API连接MySQL数据库

像PHP和perl一样,MySQL也提供的C语言使用的API. C代码的API是随MySQL一起发布的. 它包含在mysqlclient库中, 可以使C程序来访问数据库. MySQL源码包中的许多客户端都是用C写的. 如果你正在找使用这些C API的例子, 可以看看客户端的写法.你可以在MySQL源码包的clients目录找到这些例子. 软件包 请确保你已经安装了必要的开发环境,比如gcc, mysql等等. 下面是编译一个程序所需要安装的软件包的列表 (Ubuntu为例): mysql-cli

linux中VPS自动备份数据库实现方法

 代码如下 复制代码 #!/bin/bash D="/root/backup" T=`date +%Y%m%d` if [ ! -d "${D}/${T}" ]; then  /bin/mkdir "${D}/${T}" fi /usr/local/mysql/bin/mysqldump --host=localhost --user=root --password=数据库密码 要备份的数据库名 > "${D}/${T}/${T}

Linux VPS 自动备份数据到远程主机FTP的方法_Linux

备份的数据如果不是特别大的话,不建议压缩,防止其中可能会有已经被多次压缩过的文件损坏. 备份数据库的方式为停止MYSQL服务后备份DATA目录,期间MYSQL会中止数秒至数十秒.请自行权衡利弊. 如果系统上没有ftp命令,先执行yum install -y ftp进行安装. 需要先建立/home/backup/目录,该目录不能用作其他用途. 复制代码 代码如下: #!/bin/bash #FTP信息 FTP_IP= FTP_USER= FTP_PASS= #备份数据库 /etc/init.d/m

在Linux下配置最新APache Web服务器和MySql数据库服务器

问题描述 在Linux下配置最新APacheWeb服务器和MySql数据库服务器.要求:1.将配置过程详细记录2.用配置好的系统编写一个java给予MySql数据库的程序

讲解Linux系统下如何自动备份MySQL数据的基本教程_Mysql

1.先创建一个数据库备份目录: mkdir backup cd backup mkdir mysqlbackup cd mysqlbackup 2.创建备份脚本 vi mysqlautobackup 3.编写脚本: filename=`date +%Y%m%d` /mysql的bin目录/mysqldump --opt 数据库名 -u(mysql账号) -p(mysql密码) | gzip > /备份到哪个目录/name$filename.gz 说明:以上采用gzip压缩,name可随意写,注意

Linux VPS自动备份:脚本上传FTP及RSYNC增量备份

  ☆☆☆一.每日自动备份网站数据及数据库上传FTP☆☆☆   这个方式,主要是一个脚本(包含压缩网站数据及数据库,上传),然后用cron命令每天在指定时间段运行,下面请看脚本代码(脚本内信息需自行设定)    代码如下 复制代码 #!/bin/bash #以下信息请自行修改 MYSQL_USER=root                    #mysql用户名 MYSQL_PASS=123456                      #mysql密码 MAIL_TO=admin@zrbl