You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

467 lines
15 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Lednerb">
<meta name="description" content="Bilberry Premium Theme for Hugo.">
<meta name="keywords" content="blog,personal,responsive,search,font awesome,pages,posts,multilingual,highlight.js,syntax highlighting,premium,shortcuts">
<meta name="generator" content="Hugo 0.50" />
<title> [筆記] pdumpfs 檔案備份 | My cool new Blog</title>
<meta name="description" content="[筆記] pdumpfs 檔案備份 - Bilberry Premium Theme for Hugo.">
<meta itemprop="name" content="[筆記] pdumpfs 檔案備份">
<meta itemprop="description" content="[筆記] pdumpfs 檔案備份 - Bilberry Premium Theme for Hugo.">
<meta property="og:title" content="[筆記] pdumpfs 檔案備份">
<meta property="og:description" content="[筆記] pdumpfs 檔案備份 - Bilberry Premium Theme for Hugo.">
<meta property="og:image" content="https://www.gravatar.com/avatar/88188b6cc451928eba90e8400bc68086?size=200">
<meta property="og:url" content="https://h.cowbay.org/article/e7-ad-86-e8-a8-98-pdumpfs-e6-aa-94-e6-a1-88-e5-82-99-e4-bb-bd/">
<meta property="og:site_name" content="My cool new Blog">
<meta property="og:type" content="article">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-16x16.png" sizes="16x16">
<link rel="stylesheet" href="https://h.cowbay.org/sass/combined.min.717098cb5503581e75f12e486a847ca410bf8367d4d8713f4c37affc868c5a1d.css">
</head>
<body class="bilberry-hugo-theme">
<nav>
<div class="container">
<ul class="topnav">
<li><a href="/page/about-bilberry/">About Bilberry</a></li>
<li><a href="https://github.com/Lednerb/bilberry-hugo-theme" target="_blank">Github</a></li>
</ul>
<div id="search-box" class="search">
<i class="fa fa-search"></i>
<input id="search" type="text" placeholder="Search ...">
</div>
</div>
</nav>
<header>
<div class="container">
<div class="logo">
<a href="/" class="logo">
<img src="https://www.gravatar.com/avatar/88188b6cc451928eba90e8400bc68086?d=mm&size=200" alt="">
<span class="overlay"><i class="fa fa-home"></i></span>
</a>
</div>
<div class="titles">
<h3 class="title"><a href="/">My cool new Blog</a></h3>
<span class="subtitle">Hello World! This is the most epic subtitle ever.</span>
</div>
<div class="languages">
<a href="/en" class="active">en</a>
<a href="/de">de</a>
</div>
<div class="toggler">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
</div>
</header>
<div class="main container">
<div class="article-wrapper u-cf single">
<a class="bubble" href="/article/e7-ad-86-e8-a8-98-pdumpfs-e6-aa-94-e6-a1-88-e5-82-99-e4-bb-bd/">
<i class="fa fa-fw fa-pencil"></i>
</a>
<article class="default article">
<div class="content">
<h3><a href="/article/e7-ad-86-e8-a8-98-pdumpfs-e6-aa-94-e6-a1-88-e5-82-99-e4-bb-bd/">[筆記] pdumpfs 檔案備份</a></h3>
<div class="meta">
<span class="date moment">2015-07-14</span>
<span class="categories">
<a href="/categories/%E5%B7%A5%E4%BD%9C%E7%AD%86%E8%A8%98">工作筆記</a>
</span>
</div>
<p>之前已經把備份工作都交給同事去處理</p>
<p>沒想到前不久真的發生USER手殘直接把共享目錄內的文件全選、刪除</p>
<p>結果要倒回檔案的時候,發現備份的檔案不完全(備份工具是freefile sync ),引發後續一些麻煩事情</p>
<p>所以想在原本同事處理的備份工作上,再加一份我自己做的備份作為不時之需</p>
<p></p>
<p>基於之前的習慣,這次還是採用 pdumpfs 來做備份,指令比較簡單</p>
<p>只是這次多加入了把備份的過程導出成 .log 檔,然後依照日期壓縮、存放</p>
<p>主要的邏輯就是 pdumpfs 備份檔案 把std out 導出到NAS上存放然後在每天結束前把log壓縮、存放到當天的目錄</p>
<p>pdumpfs 的部分就很簡單
&gt; pdumpfs source_dir dest_dir
這樣一行就解決了</p>
<p>然後把 std out 的輸出導入到 log並加入日期
&gt; /usr/local/sbin/pdumpfs /nas/資訊部 /zp/ai/ &gt; &ldquo;/nas/DB_Backup/pdumpfs_log/pdumpfs<em>資訊部</em><code>date +\%Y\%m\%d</code>.log&rdquo;
/nas 是透過 NFS mount 群暉 NAS 的共享目錄進來</p>
<p>要注意的是,原本正常的 script應該是只有
&gt; /usr/local/sbin/pdumpfs /nas/資訊部 /zp/ai/ &gt; &ldquo;/nas/DB_Backup/pdumpfs_log/pdumpfs<em>資訊部</em><code>date +%Y%m%d</code>.log&rdquo;
跟上一行比起來少了 &ldquo;\&rdquo; 這個符號</p>
<p>因為本來在console 測試的時候SCRIPT跑起來都OK但是放到 crontab 裡面執行,就會發生錯誤
&gt; CMD (pdumpfs /nas/\345\205\261\347\224\250\350\263\207\346\226\231 /zp/public/ &gt; &ldquo;/nas/DB_Backup/pdumpfs<em>log/pdumpfs</em>\345\205\261\347\224\250\350\263\207\346\226\231_<code>date +)
中文變亂碼這部分沒問題,但是結尾只有跑到</code>date + 這邊就結束,會造成錯誤</p>
<p>原因是因為 crontab 跟這種系統變數整合的關係翻了一下GOOGLE發現要不就是指定一個系統變數存放日期要不就是加個 \ 進去處理</p>
<p>我選擇直接用 \% 來取代 %</p>
<p>放到 crontab 裡面修改一下執行時間測試OKSCRIPT 就正式上線了</p>
<p>&nbsp;</p>
<p>不過呢這個SCRIPT跑的是從群暉NAS上備份到二階的備份伺服器</p>
<p>第一層是由三台NAS所組成 (119(群暉) 、219(QNAP)、218(Windows 2012))</p>
<p>然後由其他兩台每天同步到 119上</p>
<p>因為群暉的NFS 可以用偷吃步直接MOUNT整個 volume 進來,所以比較好處理</p>
<p>Windows 2012 應該是可以直接用 smb mount 進來</p>
<p>至於QNAP就比較少玩不過應該也不會太麻煩</p>
<p>可能還是要找時間研究一下怎麼把這兩台的share folder 也 mount 到這台備份伺服器上</p>
<p>再一起加入 pdumpfs 的備份工作內</p>
<p>&nbsp;</p>
<p>Update: 2015/07/15</p>
<p>Windows 2012 的共享資料夾 如果是中文,而且要透過 mount_smbfs 掛進來的話 會出現亂碼</p>
<p>所以在 mount 的時候要加參數 -L 和 -E
&gt; mount_smbfs -L zh_TW.UTF-8 -E UTF-8:UTF-8 -I 192.168.10.218 &lsquo;//chchang@nas-218/NAS-218&rsquo; /218/
感謝 lantw44@ptt</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
<div class="footer no-tags">
</div>
</article>
</div>
<div id="disqus_thread"></div>
<script type="application/javascript">
var disqus_config = function () {
};
(function() {
if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) {
document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.';
return;
}
var d = document, s = d.createElement('script'); s.async = true;
s.src = '//' + "bilberry-hugo-theme" + '.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
<footer>
<div class="container">
<div class="recent-posts">
<strong>Latest posts</strong>
<ul>
<li>
<a href="/article/google-550-5-7-1-sloution/">寄信給google被退信 錯誤 550-5.7.1的解法</a>
</li>
<li>
<a href="/article/netdata-linux-system-performance-monitor-dashboard/">Netdata Linux System Performance Monitor Dashboard</a>
</li>
<li>
<a href="/article/linux-performance-monitor-dashboard-netdata-md/">Linux 底下極其詳細的System performace Monitor Dashboard - Netdata</a>
</li>
<li>
<a href="/article/syntax-test/">Syntax Test</a>
</li>
<li>
<a href="/article/psql-create-role-and-assign-priviledges/">psql create role and assign priviledges</a>
</li>
<li>
<a href="/article/study-url/">Study URL</a>
</li>
<li>
<a href="/article/rsync-time-backup/">[筆記] Linux 底下好用的備份工具 rsync-time-backup</a>
</li>
</ul>
</div>
<div class="categories">
<a href="/categories/"><strong>Categories</strong></a>
<ul>
<li>
<a href="/categories/%E6%9C%AA%E5%88%86%E9%A1%9E">未分類 (86)</a>
</li>
<li>
<a href="/categories/%E5%B7%A5%E4%BD%9C%E7%AD%86%E8%A8%98">工作筆記 (68)</a>
</li>
<li>
<a href="/categories/%E5%85%B6%E4%BB%96">其他 (46)</a>
</li>
<li>
<a href="/categories/%E7%AD%86%E8%A8%98">筆記 (30)</a>
</li>
<li>
<a href="/categories/%E5%89%AA%E5%A0%B1">剪報 (18)</a>
</li>
<li>
<a href="/categories/starting">Starting (5)</a>
</li>
<li>
<a href="/categories/blog">Blog (4)</a>
</li>
</ul>
</div>
<div class="right">
<div class="external-profiles">
<strong>Social media</strong>
<a href="https://twitter.com/TheRealLednerb" target="_blank"><i class="fa fa-twitter-adblock-proof"></i></a>
<a href="https://github.com/Lednerb" target="_blank"><i class="fa fa-github"></i></a>
</div>
<div class="languages">
<strong>Other languages</strong>
<a href="/en" class="active">en</a>
<a href="/de">de</a>
</div>
</div>
</div>
</footer>
<div class="credits">
<div class="container">
<div class="copyright">
<a href="https://github.com/Lednerb" target="_blank">
&copy;
2017
by Lednerb
</a>
</div>
<div class="author">
<a href="https://github.com/Lednerb/bilberry-hugo-theme" target="_blank">Bilberry Hugo Theme</a>
</div>
</div>
</div>
<script type="text/javascript" src="https://h.cowbay.org/js/externalDependencies.39c47e10e241eae2947b3fe21809c572.js" integrity="md5-OcR&#43;EOJB6uKUez/iGAnFcg=="></script>
<script type="text/javascript" src="https://h.cowbay.org/js/theme.ff50ae6dc1bfc220b23bf69dbb41b54e.js" integrity="md5-/1CubcG/wiCyO/adu0G1Tg=="></script>
<script>
$(".moment").each(function() {
$(this).text(
moment( $(this).text() )
.locale( "en" )
.format('LL')
);
});
$(".footnote-return sup").html("");
</script>
<script>
var client = algoliasearch("Y2C4RWMPXW", "50ea7f8c41c0ad233926e0be2b769ed1");
var index = client.initIndex("default-content");
$('#search').autocomplete({ hint: false, autoselect: true, debug: false },
[
{
source: $.fn.autocomplete.sources.hits(index, { hitsPerPage: 5, filters: 'language: en' }),
displayKey: function(suggestion) {
return suggestion.title || suggestion.author
},
templates: {
suggestion: function(suggestion) {
return "<span class='entry " + suggestion.type + "'>"
+ "<span class='title'>" + suggestion.title + "</span>"
+ "<span class='fa fa-fw " + suggestion.iconClass + "'></span>"
+ "</span>"
;
},
empty: function() {
return "<span class='empty'>Nothing found.</span>"
},
footer: function() {
return '<div class="branding">Powered by <img src="https:\/\/h.cowbay.org\/dist\/algolia-logo-light.svg" /></div>'
}
},
}
])
.on('autocomplete:selected', function(event, suggestion, dataset) {
window.location = (suggestion.url);
})
.keypress(function (event, suggestion) {
if (event.which == 13) {
window.location = (suggestion.url);
}
});
</script>
</body>
</html>