<?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>自动备份 &#8211; 就爱分享</title>
	<atom:link href="https://www.9host.org/tag/%e8%87%aa%e5%8a%a8%e5%a4%87%e4%bb%bd/feed" rel="self" type="application/rss+xml" />
	<link>https://www.9host.org</link>
	<description>最爱分享各种资源的中文独立博客</description>
	<lastBuildDate>Mon, 23 Dec 2024 08:25:19 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>使用定时脚本自动备份VPS数据到Dropbox</title>
		<link>https://www.9host.org/843.html</link>
					<comments>https://www.9host.org/843.html#comments</comments>
		
		<dc:creator><![CDATA[河马大叔]]></dc:creator>
		<pubDate>Tue, 13 May 2014 13:38:59 +0000</pubDate>
				<category><![CDATA[新手教程]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[自动备份]]></category>
		<guid isPermaLink="false">http://www.9host.org/?p=843</guid>

					<description><![CDATA[各位好久不见了，大叔近半年多遇到了很多事情，所以很&#8230;]]></description>
										<content:encoded><![CDATA[<p>各位好久不见了，大叔近半年多遇到了很多事情，所以很久没更新了，实在对不住大家，今天趁着有空，抓紧时间更一篇。</p>
<p>大叔记得去年写过一篇《<a href="https://www.9host.org/845.html" target="_blank" rel="noopener noreferrer">WordPress备份插件：用BackWPup自动备份到Dropbox</a>》，但BackWPup是Wordpress的插件，非Wordpress用户就没法用。而且Wordpress本来体积就很大了，使用太多的插件会影响其速度，能少用一个就少用一个。如果你是VPS用户或者对主机有Root权限，其实是可以使用脚本来实现BackWPup插件备份到Dropbox的功能。<br />
</br></p>
<h2>一、登录Dropbox并创建一个APP</h2>
<p>如果你还没有注册Dropbox，可以通过这个地址注册：<a rel="nofollow" href="https://www.9host.org/go_dropbox" title="注册地址">https://www.9host.org/go_dropbox</a><br />
登录之后，通过这个地址：<a rel="nofollow" href="https://www.dropbox.com/developers/apps" title="创建APP">https://www.dropbox.com/developers/apps</a><br />
点击<strong>Create an app</strong>创建一个APP，填写相关信息之后，选择<strong>Full Dropbox</strong>之后点击<strong>Create</strong>创建。<br />
</br></p>
<h2>二、下载Dropbox-Uploader</h2>
<p>下载地址：<a rel="nofollow" href="https://github.com/andreafabrizi/Dropbox-Uploader" title="Dropbox-Uploader地址">https://github.com/andreafabrizi/Dropbox-Uploader</a><br />
下载之后上传至VPS的root目录。<br />
</br></p>
<h2>三、赋予执行权限并绑定Dropbox APP</h2>
<p>用SSH执行，建议使用Xshell。<br />
赋予Dropbox-Uploader.sh执行权限</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">chmod +x dropbox_uploader.sh</pre>
<p>然后绑定APP</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">./dropbox_uploader.sh info</pre>
<p>按提示分别输入App key和App secret，然后输入 Y 确认；<br />
之后会出现如下画面：<br />
<img fetchpriority="high" decoding="async" src="https://www.9host.org/wp-content/uploads/2014/05/dropbox.png" alt="dropbox" width="583" height="108" class="aligncenter size-full wp-image-1287" srcset="https://www.9host.org/wp-content/uploads/2014/05/dropbox.png 583w, https://www.9host.org/wp-content/uploads/2014/05/dropbox-220x41.png 220w" sizes="(max-width: 583px) 100vw, 583px" /><br />
复制图中的链接在浏览器中打开（可能需要翻墙）并点击Allow绑定APP，然后回到Xshell按Enter。<br />
之后可以执行下面的命令测试上传，提示Done就是绑定成功了。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">./dropbox_uploader.sh upload /etc/passwd /backup/passwd.old</pre>
<p></br></p>
<h2>四、添加自动备份脚本</h2>
<p>在Xshell中执行：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">vi backup.sh</pre>
<p>按 i 进入编辑模式<br />
适当修改以下内容后，复制粘贴进去</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">#!/bin/bash
DROPBOX_DIR="/backup/$(date +%Y-%m-%d)" #Dropbox上的备份目录
MYSQL_USER="root" #数据库帐号
MYSQL_PASS="123456" #数据库密码
YM_DATA=/etc/nginx #nginx配置目录
BACK_DATA=/home/backup #本地备份文件存放目录，手动创建
DATA=/home/www #网站数据存放目录

#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
WebBakName=Web_$(date +%Y%m%d).tar.gz
YMName=YM_$(date +%Y%m%d).tar.gz
OldData=Data_$(date -d -6day +"%Y%m%d").tar.gz
OldWeb=Web_$(date -d -6day +"%Y%m%d").tar.gz
OldYM=YM_$(date -d -6day +"%Y%m%d").tar.gz

#定义Dropbox旧数据的名字（30天前）
Old_DROPBOX_DIR=/backup/$(date -d -30day +%Y-%m-%d) #Dropbox上的备份目录

#删除本地6天前的数据
rm -rf $BACK_DATA/$OldData $BACK_DATA/$OldWeb $BACK_DATA/$OldYM

cd $BACK_DATA

#使用命令导出SQL数据库,并且按数据库分个压缩
for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
    (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
#压缩数据库文件合并为一个压缩文件
tar zcf $BACK_DATA/$DataBakName $BACK_DATA/*.sql.gz
rm -rf $BACK_DATA/*.sql.gz

#压缩网站数据
cd $DATA
tar zcf $BACK_DATA/$WebBakName ./*

#压缩域名配置数据
cd $YM_DATA
tar zcf $BACK_DATA/$YMName ./*

cd ~
#开始上传
./dropbox_uploader.sh upload $BACK_DATA/$DataBakName $DROPBOX_DIR/$DataBakName
./dropbox_uploader.sh upload $BACK_DATA/$WebBakName $DROPBOX_DIR/$WebBakName
./dropbox_uploader.sh upload $BACK_DATA/$YMName $DROPBOX_DIR/$YMName

#开始删除远程30天前的文件
./dropbox_uploader.sh delete $Old_DROPBOX_DIR/

echo -e "Thank you! all down"</pre>
<p>按<strong>ESC</strong>键退出编辑模式，<br />
输入<strong>:wq</strong><br />
然后按<strong>Enter</strong>保存并退出。<br />
</br></p>
<h2>五、赋予脚本权限</h2>
<p>在Xshell执行</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">chmod +x backup.sh</pre>
<p></br></p>
<h2>六、设置定时任务</h2>
<p>执行</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">crontab -e</pre>
<p>在最后加入</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">00 03 * * * /root/backup.sh</pre>
<p>表示每天凌晨三点执行备份脚本。<br />
如果你的VPS是nano编辑器（最上有nano字样），加入之后按Ctrl+O或F3并按Enter保存，然后按Ctrl+X或F2退出；<br />
另一种是vi编辑器，需要先按i键进入编辑模式，在末尾输入上面的命令之后，按ESC键，输入:wq ，再按Enter保存并退出即可。<br />
</br></p>
<h2>七、最后重启Crontab</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="null">service cron restart</pre>
<p>重启之后就设置完成了……<br />
如果你不知道服务器当前时间，可以使用下面的命令；<br />
查看当前时间：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">date -R</pre>
<p>修改当前时区：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">cp /usr/share/zoneinfo/主时区/次时区 /etc/localtime</pre>
<p>例如：</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</pre>
<p>即修改服务器时区为上海。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.9host.org/843.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
