<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>深度VPS &#187; 自动备份</title>
	<atom:link href="http://www.deepvps.com/tag/%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD/feed" rel="self" type="application/rss+xml" />
	<link>http://www.deepvps.com</link>
	<description>专注VPS技术，关注前端技术</description>
	<lastBuildDate>Sat, 04 Feb 2023 14:00:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>自动备份网站文件和数据库上传到FTP空间(10月7日更新)</title>
		<link>http://www.deepvps.com/auto-backup-site-files-database-upload-ftp.html</link>
		<comments>http://www.deepvps.com/auto-backup-site-files-database-upload-ftp.html#comments</comments>
		<pubDate>Mon, 27 Sep 2010 00:27:24 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[FTP空间]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[网站文件]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[自动备份]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=583</guid>
		<description><![CDATA[主要功能有：自动备份网站文件和数据库并上传到FTP空间，在本地保留3天备份，在远端FTP空间保留5天备份。
数据库备份采用发送到Email和FTP空间，双重备份，保证数据的安全。
#你要修改的地方从这里开始
MYSQL_USER=root #mysql用户名
MYSQL_PASS=123456 #mysql密码
MAIL_TO=cat@hostloc.com #数据库发送到的邮箱
FTP_USER=cat #ftpl用户名
FTP_PASS=123456 #ftp密码
FTP_IP=imcat.in #ftp地址
FTP_backup=backup #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/www #要备份的网站数据
#你要修改的地方从这里结束
别忘记了建目录:mkdir -p /home/backup
如果你的网站数据大于5G小于10G的话,压缩起来会有点困难&#8230;
如果小于5G,就没问题了&#8230;不过这一切都是看vps的性能而已&#8230;
首先安装Email发送组件

yum install sendmail mutt

脚本如下：
#!/bin/bash
cd /home/backup
#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +&#8221;%Y%m%d&#8221;)..tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -5day +&#8221;%Y%m%d&#8221;).tar.gz
OldWeb=Web_$(date -d -5day +&#8221;%Y%m%d&#8221;).tar.gz
#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +&#8221;%Y%m%d&#8221;).tar.gz /home/backup/Web_$$(date -d -3day +&#8221;%Y%m%d&#8221;).tar.gz
#导出mysql数据库
/usr/local/mysql/bin/mysqldump -uroot -p123456 &#8211;databases db1 db2 db3 &#62; /home/backup/databackup.sql
#压缩数据库
tar zcf /home/backup/$DataBakName /home/backup/databackup.sql
rm -rf /home/backup/databackup.sql
#发送数据库到Email,如果数据库压缩后太大,请注释这行
echo &#8220;主题:数据库备份&#8221; &#124; mutt -a /home/backup/$DataBakName -s &#8220;内容:数据库备份&#8221; www@gmail.com
#压缩网站数据
tar zcvf /home/backup/$WebBakName [...]]]></description>
			<content:encoded><![CDATA[<p>主要功能有：自动备份网站文件和数据库并上传到FTP空间，在本地保留3天备份，在远端FTP空间保留5天备份。<br />
数据库备份采用发送到Email和FTP空间，双重备份，保证数据的安全。</p>
<p>#你要修改的地方从这里开始<br />
MYSQL_USER=root #mysql用户名<br />
MYSQL_PASS=123456 #mysql密码<br />
MAIL_TO=cat@hostloc.com #数据库发送到的邮箱<br />
FTP_USER=cat #ftpl用户名<br />
FTP_PASS=123456 #ftp密码<br />
FTP_IP=imcat.in #ftp地址<br />
FTP_backup=backup #ftp上存放备份文件的目录,这个要自己得ftp上面建的<br />
WEB_DATA=/home/www #要备份的网站数据<br />
#你要修改的地方从这里结束</p>
<p>别忘记了建目录:mkdir -p /home/backup<br />
如果你的网站数据大于5G小于10G的话,压缩起来会有点困难&#8230;</p>
<p>如果小于5G,就没问题了&#8230;不过这一切都是看vps的性能而已&#8230;</p>
<p><span id="more-583"></span>首先安装Email发送组件</p>
<blockquote>
<div>yum install sendmail mutt</div>
</blockquote>
<p>脚本如下：</p>
<blockquote><p>#!/bin/bash<br />
cd /home/backup<br />
#定义数据库的名字和旧数据库的名字<br />
DataBakName=Data_$(date +&#8221;%Y%m%d&#8221;)..tar.gz<br />
WebBakName=Web_$(date +%Y%m%d).tar.gz<br />
OldData=Data_$(date -d -5day +&#8221;%Y%m%d&#8221;).tar.gz<br />
OldWeb=Web_$(date -d -5day +&#8221;%Y%m%d&#8221;).tar.gz<br />
#删除本地3天前的数据<br />
rm -rf /home/backup/Data_$(date -d -3day +&#8221;%Y%m%d&#8221;).tar.gz /home/backup/Web_$$(date -d -3day +&#8221;%Y%m%d&#8221;).tar.gz<br />
#导出mysql数据库<br />
/usr/local/mysql/bin/mysqldump -uroot -p123456 &#8211;databases db1 db2 db3 &gt; /home/backup/databackup.sql<br />
#压缩数据库<br />
tar zcf /home/backup/$DataBakName /home/backup/databackup.sql<br />
rm -rf /home/backup/databackup.sql<br />
#发送数据库到Email,如果数据库压缩后太大,请注释这行<br />
echo &#8220;主题:数据库备份&#8221; | mutt -a /home/backup/$DataBakName -s &#8220;内容:数据库备份&#8221; www@gmail.com<br />
#压缩网站数据<br />
tar zcvf /home/backup/$WebBakName /home/www<br />
#上传到FTP空间,删除FTP空间5天前的数据<br />
ftp -v -n imcat.in &lt;&lt; END<br />
user imcat 123456<br />
type binary<br />
cd backup<br />
delete $OldData<br />
delete $OldWeb<br />
put $DataBakName<br />
put $WebBakName<br />
bye<br />
END</p></blockquote>
<p>下载地址:http://catlnmp.googlecode.com/files/AutoBackupToFtp.sh</p>
<p>下载脚本，给脚本添加权限：</p>
<blockquote><p>chmod +x AutoBackupToFtp.sh</p></blockquote>
<p>利用crontab 实现自动备份，在ssh下，</p>
<blockquote><p>crontab -e</p></blockquote>
<p>输入以下内容:</p>
<blockquote><p>00 00 * * * /home/AutoBackupToFtp.sh</p></blockquote>
<p>这样就实现了每天00:00自动备份网站文件和数据库上传到FTP空间。</p>
<p>转载：<a href="http://imcat.in/auto-backup-site-files-database-upload-ftp/" target="_blank">http://imcat.in/auto-backup-site-files-database-upload-ftp/<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/auto-backup-site-files-database-upload-ftp.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>每天自动备份mysql数据库并发送到Email</title>
		<link>http://www.deepvps.com/backup-mysql-databases-automatically-sent-to-email.html</link>
		<comments>http://www.deepvps.com/backup-mysql-databases-automatically-sent-to-email.html#comments</comments>
		<pubDate>Tue, 11 May 2010 14:56:05 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[网络杂谈]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[备份]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[自动备份]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=427</guid>
		<description><![CDATA[每天自动备份mysql数据库的脚本，并且自动发送到你指定的邮箱面，这样vpser再也不会为丢失数据烦恼啦。
mysqldump -uuser -ppassword &#8211;databases db1 db2 db3 &#62; /home/website/backups/databackup.sql
tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/
echo &#8220;主题:数据库备份&#8221; &#124; mutt -a /home/website/backups/databackup.sql.tar.gz -s &#8220;内容:数据库备份&#8221; www@gmail.com
rm -r /home/website/backups/*
将上面的代码保存为automysqlbackup.sh
然后利用crontab 实现自动备份，在ssh下运行，
crontab -e
输入以下内容：
00 00 * * * /home/website/automysqlbackup.sh
这样就实现了每天00:00自动备份mysql数据库并发送到Email
简单的说明下吧：
第一句是一次性备份多个数据库，这个要你用root权限的用户才可以的..-u后面的是数据库用户名 -p后面的是数据库密码 无需空格 db1 db2 db3为你需要备份的数据库名。
如果你的数据库用户名没有root这个权限，可以改为这样
mysqldump -uuser -ppassword db1 &#62; /home/website/backups/db1.sql
mysqldump -uuser -ppassword db2 &#62; /home/website/backups/db1.sql
mysqldump -uuser -ppassword db3 &#62; /home/website/backups/db1.sql
第二句是将 backups 文件夹里面的数据文件压缩为文件名：databackup.sql.tar.gz
第三句是将压缩了的数据库文件发送到指定的邮箱&#8230;..
其中的主题：数据库备份，就是邮件的主题，内容：数据库备份，就是邮件的内用，
/home/website/backups/databackup.sql.tar.gz 为附件
www@gmail.com为要发送的Email
转载自：http://imcat.in/backup-mysql-databases-automatically-sent-to-email/
]]></description>
			<content:encoded><![CDATA[<p>每天自动备份mysql数据库的脚本，并且自动发送到你指定的邮箱面，这样vpser再也不会为丢失数据烦恼啦。</p>
<blockquote><p>mysqldump -uuser -ppassword &#8211;databases db1 db2 db3 &gt; /home/website/backups/databackup.sql<br />
tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/<br />
echo &#8220;主题:数据库备份&#8221; | mutt -a /home/website/backups/databackup.sql.tar.gz -s &#8220;内容:数据库备份&#8221; www@gmail.com<br />
rm -r /home/website/backups/*</p></blockquote>
<p><span id="more-427"></span>将上面的代码保存为automysqlbackup.sh<br />
然后利用crontab 实现自动备份，在ssh下运行，</p>
<blockquote><p>crontab -e</p></blockquote>
<p>输入以下内容：</p>
<blockquote><p>00 00 * * * /home/website/automysqlbackup.sh</p></blockquote>
<p>这样就实现了每天00:00自动备份mysql数据库并发送到Email</p>
<p>简单的说明下吧：<br />
第一句是一次性备份多个数据库，这个要你用root权限的用户才可以的..-u后面的是数据库用户名 -p后面的是数据库密码 无需空格 db1 db2 db3为你需要备份的数据库名。<br />
如果你的数据库用户名没有root这个权限，可以改为这样</p>
<blockquote><p>mysqldump -uuser -ppassword db1 &gt; /home/website/backups/db1.sql<br />
mysqldump -uuser -ppassword db2 &gt; /home/website/backups/db1.sql<br />
mysqldump -uuser -ppassword db3 &gt; /home/website/backups/db1.sql</p></blockquote>
<p>第二句是将 backups 文件夹里面的数据文件压缩为文件名：databackup.sql.tar.gz</p>
<p>第三句是将压缩了的数据库文件发送到指定的邮箱&#8230;..</p>
<p>其中的主题：数据库备份，就是邮件的主题，内容：数据库备份，就是邮件的内用，</p>
<p>/home/website/backups/databackup.sql.tar.gz 为附件</p>
<p><a href="mailto:www@gmail.com">www@gmail.com</a>为要发送的Email</p>
<p>转载自：<a href="http://imcat.in/backup-mysql-databases-automatically-sent-to-email/" target="_blank">http://imcat.in/backup-mysql-databases-automatically-sent-to-email/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/backup-mysql-databases-automatically-sent-to-email.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自动备份文件并发送到Gmail (适用G级数据的备份)</title>
		<link>http://www.deepvps.com/automatically-backup-and-sent-to-gmail.html</link>
		<comments>http://www.deepvps.com/automatically-backup-and-sent-to-gmail.html#comments</comments>
		<pubDate>Thu, 22 Apr 2010 07:49:44 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[自动备份]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=404</guid>
		<description><![CDATA[一，安装所需程序
yum install -y mutt vixie-cron
二，设置mutt发信参数
$ vim ~/.muttrc
写入下面的内容
set envelope_from=yes
set from=bak@deepvps.com
set realname=&#8221;DiaBak&#8221;
set use_from=yes
然后设置要接收邮件的Gmail，把bak@deepvps.com加入白名单。
三，设置脚本
注意这几个目录
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
这些目录下的文件可以分别每小时，每天，每周，每月自动执行一次。
如果是把脚本程序放置在上面的目录里，最好把权限设置为0700。
设置更复杂的执行条件可以使用crontab -e命令。详情请百度。
以每天执行为例
$ vim /etc/cron.daily/diabsk.sh
写入下面的内容
#!/bin/bash
# SETTING
TOEMAIL=&#8221;bak@deepvps.com&#8221;;
COMMENT=&#8217;blog database backup&#8217;
DIR=&#8217;wordpress&#8217;
# END SETTING
TMP=&#8217;/tmp/diabak/&#8217;${DIR}
ATTTMP=&#8217;/tmp/diabakatt/&#8217;${DIR}
rm -rf $TMP
mkdir -p $TMP
cd $TMP
# Put files what you want to backup to $TMP
# Don&#8217;t change anything below
YYYYMMDD=`date +%Y%m%d`
SUBJECT=&#8217;DiaBak_of_&#8217;${DIR}&#8217;_'${YYYYMMDD};
rm -rf $ATTTMP
mkdir -p $ATTTMP
cd $ATTTMP
tar zcPf backup.tar.gz $TMP
rm -rf $TMP
split -b 20m -a 3 -d backup.tar.gz ${SUBJECT}.part
rm [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="font-size: medium;">一，安装所需程序</span></strong></p>
<blockquote><p>yum install -y mutt vixie-cron</p></blockquote>
<p><strong><span style="font-size: medium;">二，设置mutt发信参数</span></strong></p>
<blockquote><p>$ vim ~/.muttrc</p></blockquote>
<p>写入下面的内容</p>
<blockquote><p>set envelope_from=yes<br />
set from=bak@deepvps.com<br />
set realname=&#8221;DiaBak&#8221;<br />
set use_from=yes</p></blockquote>
<p>然后设置要接收邮件的Gmail，把bak@deepvps.com加入白名单。<span id="more-404"></span></p>
<p><strong><span style="font-size: medium;">三，设置脚本</span></strong><br />
注意这几个目录<br />
/etc/cron.hourly<br />
/etc/cron.daily<br />
/etc/cron.weekly<br />
/etc/cron.monthly<br />
这些目录下的文件可以分别每小时，每天，每周，每月自动执行一次。<br />
如果是把脚本程序放置在上面的目录里，最好把权限设置为0700。<br />
设置更复杂的执行条件可以使用crontab -e命令。详情请百度。</p>
<p>以每天执行为例</p>
<blockquote><p>$ vim /etc/cron.daily/diabsk.sh</p></blockquote>
<p>写入下面的内容</p>
<blockquote><p>#!/bin/bash</p>
<p># SETTING<br />
<span style="color: #ff0000;">TOEMAIL=&#8221;bak@deepvps.com&#8221;;<br />
COMMENT=&#8217;blog database backup&#8217;<br />
DIR=&#8217;wordpress&#8217;</span><br />
# END SETTING</p>
<p>TMP=&#8217;/tmp/diabak/&#8217;${DIR}<br />
ATTTMP=&#8217;/tmp/diabakatt/&#8217;${DIR}</p>
<p>rm -rf $TMP<br />
mkdir -p $TMP<br />
cd $TMP</p>
<p><span style="color: #ff0000;"># Put files what you want to backup to $TMP</span></p>
<p># Don&#8217;t change anything below<br />
YYYYMMDD=`date +%Y%m%d`<br />
SUBJECT=&#8217;DiaBak_of_&#8217;${DIR}&#8217;_'${YYYYMMDD};</p>
<p>rm -rf $ATTTMP<br />
mkdir -p $ATTTMP<br />
cd $ATTTMP</p>
<p>tar zcPf backup.tar.gz $TMP<br />
rm -rf $TMP<br />
split -b 20m -a 3 -d backup.tar.gz ${SUBJECT}.part<br />
rm -f backup.tar.gz</p>
<p>for file in *<br />
do<br />
echo $COMMENT | mutt -a $file -s $SUBJECT $TOEMAIL<br />
sleep 30s<br />
done</p>
<p>rm -rf $ATTTMP</p></blockquote>
<p>需要更改的内容已经加红<br />
TOEMAIL为接收邮件的邮箱地址。<br />
TOEMAIL为注释邮件，以邮件正文发送。<br />
DIR为临时目录名，建议仅使用英文和数字。<br />
# Put files what you want to backup to $TMP，这一行下面的命令根据需要自己补充，比如备份数据库可以把SQL文件导出到$TMP目录，备份文件可以复制文件到$TMP目录。</p>
<p><strong><span style="font-size: medium;">四，导出数据库的命令。</span></strong><br />
1.备份单个数据库</p>
<blockquote><p>mysqldump &#8211;user=user &#8211;password=password &#8211;lock-all-tables dbname &gt; backup.sql</p></blockquote>
<p>2.备份多个数据库</p>
<blockquote><p>mysqldump &#8211;user=user &#8211;password=password &#8211;lock-all-tables &#8211;databases dbname1 dbname2 &gt; backup.sql</p></blockquote>
<p>3.备份所有数据库</p>
<blockquote><p>mysqldump &#8211;user=user &#8211;password=password &#8211;lock-all-tables &#8211;all-databases &gt; backup.sql</p></blockquote>
<p>&#8211;lock-all-tables选项可以在备份期间锁定数据库防止出现变化，进而导致多个有关系的表不同步，比如A表需要引用B表，备份完A表后，B表发生了变化，之后才备份了B表，这样数据库就乱了。<br />
备份上百M的数据库也只用了几秒而已，所以这个选项对网站运行影响不大。</p>
<p><strong><span style="font-size: medium;">五，重新组合备份的文件</span></strong><br />
Linux下<br />
$ cat DiaBak* &gt; bak.tar.gz<br />
windows下<br />
copy DiaBak_of_testfile_20100421.part001/b+DiaBak_of_testfile_20100421.part002/b bak.tar.gz<br />
注意分卷后面会有三位数字，cat命令会按这些数字的顺序重新组合文件，所以数字不能乱。<br />
copy命令同理，注意数字顺序。</p>
<p><strong><span style="font-size: medium;">六，其他</span></strong><br />
测试了一个600多M的文件，以20M的大小分成了31个包，通过脚本发送，用时十几分钟，期间网速保持在5Mbps到10Mbps之间，本机还有足够的带宽，这个应该是GMAIL的上限了。<br />
有些邮件需要过一个多小时才在Gmail显示出来。31个包全部收到。<br />
如果哪位发现有比Gmail更适合备份的邮箱，期待与大家分享。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/automatically-backup-and-sent-to-gmail.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
