<?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>backup &#8211; 記下來</title>
	<atom:link href="https://noter.tw/tag/backup/feed/" rel="self" type="application/rss+xml" />
	<link>https://noter.tw</link>
	<description>一路上踩到的坑、遇到的問題，一點一滴記下來，希望能幫助到需要的人~</description>
	<lastBuildDate>Tue, 03 Dec 2019 15:34:36 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://noter.tw/wp-content/uploads/cropped-old-1130742_1920-1-32x32.jpg</url>
	<title>backup &#8211; 記下來</title>
	<link>https://noter.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>一個腳本每天自動備份</title>
		<link>https://noter.tw/436/%e4%b8%80%e5%80%8b%e8%85%b3%e6%9c%ac%e6%af%8f%e5%a4%a9%e8%87%aa%e5%8b%95%e5%82%99%e4%bb%bd/</link>
					<comments>https://noter.tw/436/%e4%b8%80%e5%80%8b%e8%85%b3%e6%9c%ac%e6%af%8f%e5%a4%a9%e8%87%aa%e5%8b%95%e5%82%99%e4%bb%bd/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Fri, 07 Dec 2018 15:28:18 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[技術相關]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[備份]]></category>
		<category><![CDATA[shell script]]></category>
		<guid isPermaLink="false">https://noter.tw/?p=436</guid>

					<description><![CDATA[<p>這篇文章是 2012 年小蛙寫的，現在放在這邊給有需要的人，透過一個腳本 + crontab 來讓主機每天固定時間進行備份，後面還可以串上 Dropbox, Google Drive 或是 rsync&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/436/%e4%b8%80%e5%80%8b%e8%85%b3%e6%9c%ac%e6%af%8f%e5%a4%a9%e8%87%aa%e5%8b%95%e5%82%99%e4%bb%bd/" data-wpel-link="internal">一個腳本每天自動備份</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>

這篇文章是 2012 年小蛙寫的，現在放在這邊給有需要的人，透過一個腳本 + crontab 來讓主機每天固定時間進行備份，後面還可以串上 Dropbox, Google Drive 或是 rsync 到特定地方儲存，多備份到雲端讓資料更穩妥。

</p>



<span id="more-436"></span>



<p>

有一些經常性要執行的，或是省時間記錄一次就好的「功能導向」的系列指令，例如：小蛙在設定 Docker 的時候，希望每次 Docker 開啟來都會設定好的環境，這種時候有兩個做法 1. 重新製作 image 讓他可以符合自己的需求，或是 2. 寫一個腳本檔，有新安裝的環境時，執行一次該腳本就可以自動進行設定或部署。

</p>



<p>

這類的腳本通常叫做 shell script，今天這邊會放上一個小蛙自己在用備份的 script，大概提一下需要注意的事項

</p>



<ol class="my-li bg-darkblue wp-block-list"><li>第一行一定要是 #!/bin/bash</li><li>要有執行權限，至少要 chmod 744 xxx.sh</li></ol>



<h2 class="para wp-block-heading">撰寫腳本</h2>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code"># 備份所有資料庫，不壓縮(也可以加入壓縮指令)
function backupDB(){
    mysqldump -u資料庫帳號 -p資料庫密碼 --all-databases > /root/Dropbox/vpsbackup/vps-databases-$(date +%Y%m%d).sql
}
# 備份 /var/www 目錄，並且壓縮(如果要備份其他的資料夾，也可以此類推)
function backupWWW(){
    tar -jpc -f /root/Dropbox/vpsbackup/www-$(date +%Y%m%d).tar.bz2 /var/www
}
# 備份 /etc 目錄
function backupEtc(){
    tar -jpc -f /root/Dropbox/vpsbackup/etc-$(date +%Y%m%d).tar.bz2 /etc
}
# 備份 /root 目錄，並且排除Dropbox資料夾
function backupRoot(){
    tar -jpc -f /root/Dropbox/vpsbackup/root-$(date +%Y%m%d).tar.bz2 /root --exclude=Dropbox
}
case  in
    "db")
        #執行備份db動作
        backupDB;
        ;;
    "www")
        #備份www資料夾
        backupWWW;
        ;;
    "etc")
        #備份/etc資料夾
        backupEtc;
        ;;
    "root")
        #備份/root/shell資料夾
        backupRoot;
        ;;
    *)
        #印出錯誤訊息及使用方式
        echo ""
        echo "Usage  : ./backupProcess.sh [db | www]"
        echo ""
        echo "  db   : backup all databases."
        echo "  www  : backup /var/www data."
        echo "  etc  : backup /etc/data."
        echo "  root : backup /root/shell data."
        echo ""
        ;;
esac</pre>



<p>

把檔案存成<code>backupProcess.sh</code>，確定 chmod 加入了可執行權限後，就可以這樣使用

</p>



<pre class="left green">/root/backupProcess.sh 備份種類（這些都可以依自己需求修改）
/root/backupProcess.sh db
</pre>



<h2 class="para wp-block-heading">把備份動作加入自動排程</h2>



<pre class="left green">crontab -e # 設定排程器 crontab
</pre>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code"># crontab –e
# 每天早上三點五分備份/etc
5   3 * * *     /root/backupProcess.sh etc >> /root/log/etc.log
# 每天早上三點十分備份/root
10  3 * * *     /root/backupProcess.sh root >> /root/log/root.log
# 每天早上三點十五分備份database
15  3 * * *     /root/backupProcess.sh db >> /root/log/db.log
# 每個星期天上午三點半備份 /var/www 目錄
30  3 * * 0     /root/backupProcess.sh www >> /root/log/www.log
# 每天早上四點開啟dropbox
0   4 * * *     dropbox start >> /root/log/dropbox.log
# 每天早上四點三十分關閉dropbox
30  4 * * *     dropbox stop >> /root/log/dropbox.log</pre>



<p>

上面<code>&gt;&gt; /root/log/etc.log</code>是小蛙要記錄備份是否有正確執行，如果不需要的話直接拿掉就可以囉！

</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/436/%e4%b8%80%e5%80%8b%e8%85%b3%e6%9c%ac%e6%af%8f%e5%a4%a9%e8%87%aa%e5%8b%95%e5%82%99%e4%bb%bd/" data-wpel-link="internal">一個腳本每天自動備份</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/436/%e4%b8%80%e5%80%8b%e8%85%b3%e6%9c%ac%e6%af%8f%e5%a4%a9%e8%87%aa%e5%8b%95%e5%82%99%e4%bb%bd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
