【FreeBSD】簡単にNASの自動的にバックアップする方法
このコミットが含まれているのは:
コミット
b176860124
398
gemini/blog.atom
398
gemini/blog.atom
|
@ -3,13 +3,122 @@
|
|||
<id>gemini://technicalsuwako.moe</id>
|
||||
<title>テクニカル諏訪子</title>
|
||||
|
||||
<updated>2024-01-04T00:00:00Z</updated>
|
||||
<updated>2024-01-30T00:00:00Z</updated>
|
||||
|
||||
<author><name>テクニカル諏訪子</name></author>
|
||||
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
|
||||
|
||||
|
||||
|
||||
<entry>
|
||||
<id>blog/freebsd-nas-auto-backup.gmi</id>
|
||||
<author><name>凜</name></author>
|
||||
<title type="html">【FreeBSD】簡単にNASの自動的にバックアップする方法</title>
|
||||
<published>2024-01-30T00:00:00Z</published>
|
||||
|
||||
<category term="jp"></category>
|
||||
|
||||
<category term="blog"></category>
|
||||
|
||||
<category term="freebsd"></category>
|
||||
|
||||
<category term="nas"></category>
|
||||
|
||||
<category term="デジタル自主"></category>
|
||||
|
||||
<link href="gemini://technicalsuwako.moe/blog/freebsd-nas-auto-backup.gmi" rel="alternate"></link>
|
||||
<content type="html">
|
||||
|
||||
|
||||
|
||||
<p><a href="/blog/digital-autonomy-076video-hosting.gmi">先月は「076動画ホスティングの解決策」という投稿を書きました。</a><br />
|
||||
先週の週末、このNASに4 TiBのSSDを追加しましたので、それによりGitlerと076動画のストレージ容量が増大出来ました。<br />
|
||||
でも、バックアップならどうすれば良いですか?<br />
|
||||
今回はこれを解決すると思いますが、ちゃんと理解するには、まずは「076動画ホスティングの解決策」をご覧下さい。</p>
|
||||
<h2 id="heading">必要なソフト</h2>
|
||||
<p>今回必要なソフトは1つだけで、rsyncです。</p>
|
||||
<pre><code lang=""><span style="color:#080;font-style:italic"># doas pkg install rsync</span>
|
||||
</code></pre><h2 id="root">rootになれ!!</h2>
|
||||
<p>そこからrootアカウントで行います。</p>
|
||||
<pre><code lang=""><span style="color:#080;font-style:italic"># doas su -l</span>
|
||||
$
|
||||
</code></pre><h2 id="zfs">ZFSで使ってディスクを確認して</h2>
|
||||
<pre><code lang="">$ zpool list
|
||||
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
|
||||
backup 888G 259G 629G - - 0% 29% 1.00x ONLINE -
|
||||
xroot 3.62T 259G 3.37T - - 0% 6% 1.00x ONLINE -
|
||||
zroot 920G 277G 643G - - 0% 30% 1.00x ONLINE -
|
||||
|
||||
$ ls -thal /zroot /backup /xroot
|
||||
/xroot:
|
||||
total <span style="color:#666">52</span>
|
||||
drwxr-xr-x <span style="color:#666">19</span> peertube peertube 19B 1月 <span style="color:#666">29</span> 23:34 peertube
|
||||
drwxr-xr-x <span style="color:#666">7</span> root wheel 7B 1月 <span style="color:#666">28</span> 23:30 .
|
||||
drwxr-xr-x <span style="color:#666">22</span> root wheel 28B 1月 <span style="color:#666">28</span> 20:32 ..
|
||||
drwxr-xr-x <span style="color:#666">17</span> suwako suwako 17B 1月 <span style="color:#666">23</span> 16:14 repo
|
||||
drwxr-xr-x <span style="color:#666">6</span> git git 8B 1月 <span style="color:#666">18</span> 16:14 git
|
||||
drwxr-x--- <span style="color:#666">8</span> git git 8B 1月 <span style="color:#666">18</span> 15:59 gitler
|
||||
|
||||
/backup:
|
||||
total <span style="color:#666">43</span>
|
||||
drwxr-xr-x <span style="color:#666">19</span> peertube peertube 19B 1月 <span style="color:#666">29</span> 23:34 peertube
|
||||
drwxr-xr-x <span style="color:#666">22</span> root wheel 28B 1月 <span style="color:#666">28</span> 20:32 ..
|
||||
drwxr-xr-x <span style="color:#666">17</span> suwako suwako 17B 1月 <span style="color:#666">23</span> 16:14 repo
|
||||
drwxr-xr-x <span style="color:#666">6</span> root wheel 6B 1月 <span style="color:#666">23</span> 14:26 .
|
||||
drwxr-xr-x <span style="color:#666">6</span> git git 8B 1月 <span style="color:#666">18</span> 16:14 git
|
||||
drwxr-x--- <span style="color:#666">8</span> git git 8B 1月 <span style="color:#666">18</span> 15:59 gitler
|
||||
|
||||
/zroot:
|
||||
total <span style="color:#666">43</span>
|
||||
drwxr-xr-x <span style="color:#666">19</span> peertube peertube 19B 1月 <span style="color:#666">29</span> 23:34 peertube
|
||||
drwxr-xr-x <span style="color:#666">22</span> root wheel 28B 1月 <span style="color:#666">28</span> 20:32 ..
|
||||
drwxr-xr-x <span style="color:#666">17</span> suwako suwako 17B 1月 <span style="color:#666">23</span> 16:14 repo
|
||||
drwxr-xr-x <span style="color:#666">6</span> root wheel 6B 1月 <span style="color:#666">23</span> 14:26 .
|
||||
drwxr-xr-x <span style="color:#666">6</span> git git 8B 1月 <span style="color:#666">18</span> 16:14 git
|
||||
drwxr-x--- <span style="color:#666">8</span> git git 8B 1月 <span style="color:#666">18</span> 15:59 gitler
|
||||
|
||||
$ du -lsh /zroot/* /backup/* /xroot/*
|
||||
6.2G /zroot/git
|
||||
142G /zroot/gitler
|
||||
104G /zroot/peertube
|
||||
6.9G /zroot/repo
|
||||
6.2G /backup/git
|
||||
142G /backup/gitler
|
||||
104G /backup/peertube
|
||||
6.9G /backup/repo
|
||||
6.2G /xroot/git
|
||||
142G /xroot/gitler
|
||||
512B /xroot/mainpc
|
||||
104G /xroot/peertube
|
||||
6.9G /xroot/repo
|
||||
</code></pre><h2 id="heading-1">シェルスクリプトを作る</h2>
|
||||
<pre><code lang="">$ nvim sync-backups.sh <span style="color:#666">&amp;&amp;</span> chmod +x sync-backups.sh
|
||||
</code></pre><p>この「 &amp;&amp; chmod +x sync-backups.sh」の部分は、「sync-backups.sh」を保存して終了したら、直ぐに実行可能にして下さいという意味です。</p>
|
||||
<pre><code lang=""><span style="color:#080">#!/bin/sh
|
||||
</span><span style="color:#080"></span>
|
||||
<span style="color:#080;font-style:italic"># 1 TiB</span>
|
||||
rsync -vaHzop --delete /zroot/* /backup
|
||||
|
||||
<span style="color:#080;font-style:italic"># 4 TiB</span>
|
||||
rsync -vaHzop --delete /zroot/* /xroot
|
||||
</code></pre><p>「rsync -vaHzop &ndash;delete /zroot/* /backup」の意味は:</p>
|
||||
<ul>
|
||||
<li>rsync = ソフト</li>
|
||||
<li>-vaHzop = 何をコピーするか表示する、アーカイブモード (1:1のコピーを作る事)、ハードリンクを保管、、オーナーを保管、許可を保管</li>
|
||||
<li>&ndash;delete = もう存在しないファイルやディレクトリがあれば、消す</li>
|
||||
<li>/zroot/* /backup = /zrootの内容の全部を/backupにコピーする</li>
|
||||
</ul>
|
||||
<h2 id="crontab">crontabを変更して</h2>
|
||||
<p>最後にcrontabを変更しましょう。</p>
|
||||
<pre><code lang="">$ crontab -e
|
||||
</code></pre><pre><code lang="">0 0,6,12,18 * * * /root/sync-backups.sh
|
||||
</code></pre><p>それで、毎日4回 (0:00、6:00、12:00、そうして18:00で) バックアップのスクリプトを実行されます。</p>
|
||||
<p>以上</p>
|
||||
|
||||
|
||||
</content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<id>blog/rice-productive.gmi</id>
|
||||
<author><name>凛</name></author>
|
||||
|
@ -284,292 +393,5 @@ Linux向けウィルスも存在しますが、その数は格段に少ないで
|
|||
</content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<id>blog/digital-autonomy-076video-hosting.gmi</id>
|
||||
<author><name>凛</name></author>
|
||||
<title type="html">【デジタル自主】076動画ホスティングの解決策</title>
|
||||
<published>2023-12-11T00:00:00Z</published>
|
||||
|
||||
<category term="jp"></category>
|
||||
|
||||
<category term="blog"></category>
|
||||
|
||||
<category term="デジタル自主"></category>
|
||||
|
||||
<category term="freebsd"></category>
|
||||
|
||||
<category term="openbsd"></category>
|
||||
|
||||
<category term="bsd"></category>
|
||||
|
||||
<category term="nfs"></category>
|
||||
|
||||
<category term="relayd"></category>
|
||||
|
||||
<category term="nas"></category>
|
||||
|
||||
<category term="peertube"></category>
|
||||
|
||||
<category term="ネットワーク"></category>
|
||||
|
||||
<link href="gemini://technicalsuwako.moe/blog/digital-autonomy-076video-hosting.gmi" rel="alternate"></link>
|
||||
<content type="html">
|
||||
|
||||
|
||||
|
||||
<p>PeerTubeのホスティングと言えば、「高額」というイメージが浮かびます。<br />
|
||||
しかし、デジタル自主を理解すれば、高額な費用は必要ありません。<br />
|
||||
あたしはストレージやトラフィックの使用量に関わらず、毎月1,200円を支払っています。</p>
|
||||
<h2 id="heading">必要な物</h2>
|
||||
<ul>
|
||||
<li>古いパソコン3台(秋葉原でのジャンク品を選ぶ事を勧めます)</li>
|
||||
<li>2枚1 TiBのSSD(勧め: <a href="https://www.amazon.co.jp/gp/product/B0BYZFB8D6">https://www.amazon.co.jp/gp/product/B0BYZFB8D6</a> 残念ですが、最近はCRUCIAL MX-500のSSDが凄く高くなりましたので、もう勧めれません)</li>
|
||||
<li>2枚の大きさがどうでも良いSSD</li>
|
||||
<li>ルータ(勧め: <a href="https://www.amazon.co.jp/gp/product/B08MH4VLR3">https://www.amazon.co.jp/gp/product/B08MH4VLR3</a> )</li>
|
||||
<li>KVMスイッチ(勧め: <a href="https://www.amazon.co.jp/gp/product/B094N5LWKZ">https://www.amazon.co.jp/gp/product/B094N5LWKZ</a> )</li>
|
||||
<li>キーボード(勧め: <a href="https://www.amazon.co.jp/gp/product/B08M3BQ1TS">https://www.amazon.co.jp/gp/product/B08M3BQ1TS</a> )</li>
|
||||
<li>VGAを対応するモニタ</li>
|
||||
<li>インターリンク フレッツ接続ZOOT NEXT(固定IPの為)</li>
|
||||
<li>(沢山サーバがあれば)ハブスイッチ(勧め: <a href="https://www.amazon.co.jp/gp/product/B08YKSR6R8">https://www.amazon.co.jp/gp/product/B08YKSR6R8</a> )</li>
|
||||
<li>2つのUSBメモリ(一つはFreeBSDと、一つはOpenBSD)</li>
|
||||
</ul>
|
||||
<p>特にKVMスイッチが必要はありませんが、1つのモニタとキーボードを持ったら、とても便利です。\</p>
|
||||
<p>OpenBSDを使う理由はセキュリティで、FreeBSDを使う理由はパフォーマンスです。<br />
|
||||
一緒に完璧なコンビネーションとなります。</p>
|
||||
<h2 id="usb">USBメモリを準備して、インストールして下さい</h2>
|
||||
<p>FreeBSDとOpenBSDのイメージをダウンロードして下さい。<br />
|
||||
<a href="https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.0/">FreeBSD 14.0-RELEASE</a><br />
|
||||
<a href="https://cdn.openbsd.org/pub/OpenBSD/7.4/amd64/install74.img">OpenBSD 7.4</a></p>
|
||||
<p>この記事の目的の為に、USBメモリのフラッシュとFreeBSD及びOpenBSDのインストール方法を既に知っていると仮定します。</p>
|
||||
<h2 id="heading-1">あたしのセットアップ</h2>
|
||||
<p>あたしのセットアップは下記のイメージです。
|
||||
ネットワーク以内のIPは:</p>
|
||||
<ul>
|
||||
<li>192.168.0.1 = ルータ</li>
|
||||
<li>192.168.0.104 = PeerTubeサーバ</li>
|
||||
<li>192.168.0.106 = relaydサーバ</li>
|
||||
<li>192.168.0.143 = NAS</li>
|
||||
</ul>
|
||||
<p><img src="https://ass.technicalsuwako.moe/DKp6BGXWTYu4JnBZ1biZPw.jpg" alt="" />
|
||||
<img src="https://ass.technicalsuwako.moe/4CUzz0i5QI2FoYuKotvAAQ.jpg" alt="" />
|
||||
<img src="https://ass.technicalsuwako.moe/JePPSZafQn25uCJxvFaKGw.jpg" alt="" />
|
||||
<img src="https://ass.technicalsuwako.moe/5VLgmL3DSTyoItyvOILtRw.jpg" alt="" /></p>
|
||||
<p>ちなみに、このネットワークのIPセグメントは下記のイメージです:</p>
|
||||
<ul>
|
||||
<li>1 = ルータ</li>
|
||||
<li>2〜99 = DHCP</li>
|
||||
<li>100 = メインパソコン</li>
|
||||
<li>101〜120 = サーバ</li>
|
||||
<li>121〜130 = ノートパソコン(イーサネット)</li>
|
||||
<li>131〜140 = ノートパソコン(WiFi)</li>
|
||||
<li>141〜160 = ネットワーク機器(NAS、WiFiアクセスポイント、防犯カメラ等)</li>
|
||||
<li>161〜180 = ゲーム機(ニンテンドースイッチ、ニンテンドー3DS等)</li>
|
||||
<li>181〜200 = スマホ、タブパソコン等</li>
|
||||
<li>201〜254 = 何もない</li>
|
||||
</ul>
|
||||
<h2 id="relaydopenbsd">サーバ1:relaydサーバ(OpenBSD)</h2>
|
||||
<p>このサーバでOpenBSDを使う理由はセキュリティです。<br />
|
||||
ネットワーク外からの接続は全部このサーバに通じます。</p>
|
||||
<h3 id="etcacme-clientconf">/etc/acme-client.conf</h3>
|
||||
<pre><code lang="">#
|
||||
# $OpenBSD: acme-client.conf,v 1.4 2020/09/17 09:13:06 florian Exp $
|
||||
#
|
||||
authority letsencrypt {
|
||||
api url &#34;https://acme-v02.api.letsencrypt.org/directory&#34;
|
||||
account key &#34;/etc/acme/letsencrypt-privkey.pem&#34;
|
||||
}
|
||||
|
||||
domain 076.moe {
|
||||
alternative names {
|
||||
www.076.moe,
|
||||
stopsdgs.076.moe,
|
||||
stopsmaho.076.moe,
|
||||
mitra.076.moe,
|
||||
mixi.076.moe,
|
||||
video.076.moe,
|
||||
imgproxy.076.moe
|
||||
}
|
||||
domain key &#34;/etc/ssl/private/076.moe.key&#34;
|
||||
domain full chain certificate &#34;/etc/ssl/076.moe.crt&#34;
|
||||
sign with letsencrypt
|
||||
}
|
||||
</code></pre><h3 id="etchttpdconfssl">/etc/httpd.conf(SSL証明書を受け取る為)</h3>
|
||||
<pre><code lang=""># $OpenBSD: httpd.conf,v 1.22 2020/11/04 10:34:18 denis Exp $
|
||||
|
||||
server &#34;default&#34; {
|
||||
listen on * port 80
|
||||
root &#34;/htdocs&#34;
|
||||
location &#34;/.well-known/acme-challenge/*&#34; {
|
||||
root &#34;/acme&#34;
|
||||
request strip 2
|
||||
}
|
||||
}
|
||||
</code></pre><h3 id="etcrelaydconf">/etc/relayd.conf</h3>
|
||||
<pre><code lang=""># $OpenBSD: relayd.conf,v 1.5 2018/05/06 20:56:55 benno Exp $
|
||||
#
|
||||
# Macros
|
||||
#
|
||||
relayd_addr=&#34;0.0.0.0&#34;
|
||||
insrv4_addr=&#34;192.168.0.104&#34;
|
||||
router_addr=&#34;192.168.0.106&#34;
|
||||
|
||||
table &lt;video&gt; { $insrv4_addr }
|
||||
|
||||
http protocol reverse {
|
||||
tcp { nodelay, sack }
|
||||
tls ciphers &#34;TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256&#34;
|
||||
tls keypair &#34;076.moe&#34;
|
||||
|
||||
match request header append &#34;X-Forwarded-For&#34; value &#34;$REMOTE_ADDR&#34;
|
||||
match request header append &#34;X-Forwarded-Port&#34; value &#34;$REMOTE_PORT&#34;
|
||||
|
||||
match response header set &#34;X-Frame-Options&#34; value &#34;deny&#34;
|
||||
match response header set &#34;X-XSS-Protection&#34; value &#34;1; mode=block&#34;
|
||||
match response header set &#34;X-Content-Type-Options&#34; value &#34;nosniff&#34;
|
||||
match response header set &#34;Strict-Transport-Security&#34; value &#34;max-age=31536000; includeSubDomains; preload&#34;
|
||||
match response header set &#34;Permissions-Policy&#34; value &#34;accelerometer=()&#34;
|
||||
|
||||
pass request quick header &#34;Host&#34; value &#34;video.076.moe&#34; forward to &lt;video&gt;
|
||||
|
||||
return error
|
||||
pass
|
||||
}
|
||||
|
||||
relay www_tls {
|
||||
listen on $relayd_addr port 443 tls
|
||||
protocol reverse
|
||||
|
||||
forward to &lt;video&gt; port 9000 check tcp
|
||||
}
|
||||
|
||||
relay www_http {
|
||||
listen on $relayd_addr port 80
|
||||
protocol reverse
|
||||
|
||||
forward to &lt;video&gt; port 9000 check tcp
|
||||
}
|
||||
|
||||
relay pt {
|
||||
listen on $relayd_addr port 1935 tls
|
||||
protocol reverse
|
||||
|
||||
forward to &lt;video&gt; port 19355 check tcp
|
||||
}
|
||||
</code></pre><p>ポート1935番号は生配信の為です。</p>
|
||||
<pre><code lang="">rcctl <span style="color:#a2f">enable</span> httpd
|
||||
rcctl <span style="color:#a2f">enable</span> relayd
|
||||
rcctl start httpd
|
||||
|
||||
acme-client -v 076.moe
|
||||
|
||||
rcctl start relayd
|
||||
</code></pre><h2 id="nasfreebsd">サーバ2:NAS(FreeBSD)</h2>
|
||||
<p>FreeBSDを使う理由はZFSです。<br />
|
||||
インストールしながら、是非「ZFS」→「stripe」を選択して下さい。</p>
|
||||
<p>まずはSSDを確認して下さい:</p>
|
||||
<pre><code lang="">$ dmesg | grep ada
|
||||
ada0 at ahcich0 bus <span style="color:#666">0</span> scbus0 target <span style="color:#666">0</span> lun <span style="color:#666">0</span>
|
||||
ada0: &lt;CT1000MX500SSD1 M3CR046&gt; ACS-3 ATA SATA 3.x device
|
||||
ada0: Serial Number 〇〇
|
||||
ada0: 600.000MB/s transfers <span style="color:#666">(</span>SATA 3.x, UDMA6, PIO 512bytes<span style="color:#666">)</span>
|
||||
ada0: Command Queueing enabled
|
||||
ada0: 953869MB <span style="color:#666">(</span><span style="color:#666">1953525168</span> <span style="color:#666">512</span> byte sectors<span style="color:#666">)</span>
|
||||
ada1 at ahcich1 bus <span style="color:#666">0</span> scbus1 target <span style="color:#666">0</span> lun <span style="color:#666">0</span>
|
||||
ada1: &lt;Lexar SSD NQ100 960GB SN11873&gt; ACS-4 ATA SATA 3.x device
|
||||
ada1: Serial Number 〇〇
|
||||
ada1: 600.000MB/s transfers <span style="color:#666">(</span>SATA 3.x, UDMA6, PIO 512bytes<span style="color:#666">)</span>
|
||||
ada1: Command Queueing enabled
|
||||
ada1: 915715MB <span style="color:#666">(</span><span style="color:#666">1875385008</span> <span style="color:#666">512</span> byte sectors<span style="color:#666">)</span>
|
||||
ses0: ada0,pass0 in <span style="color:#b44">&#39;Slot 00&#39;</span>, SATA Slot: scbus0 target <span style="color:#666">0</span>
|
||||
ses0: ada1,pass1 in <span style="color:#b44">&#39;Slot 01&#39;</span>, SATA Slot: scbus1 target <span style="color:#666">0</span>
|
||||
</code></pre><p>ada1を作成しましょう。</p>
|
||||
<pre><code lang="">$ gpart create -s gpt ada1
|
||||
$ gpart add -t freebsd-zfs -l disk1 ada1
|
||||
</code></pre><p>zpoolを作って下さい。</p>
|
||||
<pre><code lang="">$ zpool create backup ada1p1
|
||||
$ zpool list
|
||||
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
|
||||
backup 888G 396K 888G - - 0% 0% 1.00x ONLINE -
|
||||
zroot 920G 180G 740G - - 0% 19% 1.00x ONLINE -
|
||||
$ zfs create zroot/peertube
|
||||
</code></pre><p>ada1はバックアップ用に使用しますが、具体的な方法についてはこの記事では説明しません。</p>
|
||||
<p>peertubeユーザーとグループを創作して下さい。</p>
|
||||
<pre><code lang="">$ pw groupadd peertube
|
||||
$ pw useradd peertube -g peertube -s /usr/sbin/nologin -d /nonexistent -c <span style="color:#b44">&#34;PeerTube User&#34;</span>
|
||||
</code></pre><h3 id="etcexports">/etc/exports</h3>
|
||||
<pre><code lang="">/zroot/peertube -maproot=peertube:peertube 192.168.0.104
|
||||
</code></pre><h3 id="etcrcconf">/etc/rc.conf</h3>
|
||||
<pre><code lang="">clear_tmp_enable=&#34;YES&#34;
|
||||
syslogd_flags=&#34;-ss&#34;
|
||||
hostname=&#34;freebsdnas&#34;
|
||||
keymap=&#34;jp.kbd&#34;
|
||||
ifconfig_re0=&#34;inet 192.168.0.143 netmask 255.255.255.0&#34;
|
||||
defaultrouter=&#34;192.168.0.1&#34;
|
||||
local_unbound_enable=&#34;YES&#34;
|
||||
sshd_enable=&#34;YES&#34;
|
||||
ntpd_enable=&#34;YES&#34;
|
||||
rsyncd_enable=&#34;YES&#34;
|
||||
moused_nondefault_enable=&#34;NO&#34;
|
||||
# Set dumpdev to &#34;AUTO&#34; to enable crash dumps, &#34;NO&#34; to disable
|
||||
dumpdev=&#34;AUTO&#34;
|
||||
zfs_enable=&#34;YES&#34;
|
||||
zfs_enable=&#34;YES&#34;
|
||||
rpcbind_enable=&#34;YES&#34;
|
||||
nfs_server_enable=&#34;YES&#34;
|
||||
nfsd_flags=&#34;-u -t -n 2&#34;
|
||||
mountd_enable=&#34;YES&#34;
|
||||
</code></pre><p>サービスを起動して下さい。</p>
|
||||
<pre><code lang="">$ service rpcbind start
|
||||
$ service mountd start
|
||||
$ service nfsd start
|
||||
</code></pre><h2 id="peertubefreebsd">サーバ3:PeerTubeサーバ(FreeBSD)</h2>
|
||||
<p>FreeBSDを使う理由は、PeerTubeの開発者がOpenBSDをサポートしていない為です。<br />
|
||||
いつでも通りにPeerTubeをインストールして下さい(nginxの設定が不要です)。</p>
|
||||
<h3 id="etcrcconf-1">/etc/rc.conf</h3>
|
||||
<pre><code lang=""><span style="color:#b8860b">clear_tmp_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">syslogd_flags</span><span style="color:#666">=</span><span style="color:#b44">&#34;-ss&#34;</span>
|
||||
<span style="color:#b8860b">hostname</span><span style="color:#666">=</span><span style="color:#b44">&#34;peertubesrv&#34;</span>
|
||||
<span style="color:#b8860b">keymap</span><span style="color:#666">=</span><span style="color:#b44">&#34;jp.kbd&#34;</span>
|
||||
<span style="color:#b8860b">ifconfig_re0</span><span style="color:#666">=</span><span style="color:#b44">&#34;inet 192.168.0.104 netmask 255.255.255.0&#34;</span>
|
||||
<span style="color:#b8860b">defaultrouter</span><span style="color:#666">=</span><span style="color:#b44">&#34;192.168.0.1&#34;</span>
|
||||
<span style="color:#b8860b">local_unbound_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">ifconfig_re0</span><span style="color:#666">=</span><span style="color:#b44">&#34;DHCP&#34;</span>
|
||||
<span style="color:#b8860b">sshd_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#080;font-style:italic"># Set dumpdev to &#34;AUTO&#34; to enable crash dumps, &#34;NO&#34; to disable</span>
|
||||
<span style="color:#b8860b">dumpdev</span><span style="color:#666">=</span><span style="color:#b44">&#34;AUTO&#34;</span>
|
||||
<span style="color:#b8860b">zfs_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">shavit_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">postgresql_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">redis_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">postgresql_class</span><span style="color:#666">=</span><span style="color:#b44">&#34;postgres&#34;</span>
|
||||
<span style="color:#b8860b">peertube_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">nginx_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;NO&#34;</span>
|
||||
<span style="color:#b8860b">nfs_server_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
<span style="color:#b8860b">nfs_client_enable</span><span style="color:#666">=</span><span style="color:#b44">&#34;YES&#34;</span>
|
||||
</code></pre><pre><code lang="">$ <span style="color:#a2f">cd</span> /var/www/peertube
|
||||
$ rm -rf storage
|
||||
$ mkdir storage
|
||||
$ mount -t nfs 192.168.0.143:/zroot/peertube /var/www/peertube/storage
|
||||
$ df -h
|
||||
Filesystem Size Used Avail Capacity Mounted on
|
||||
zroot/ROOT/default 92G 63G 29G 68% /
|
||||
devfs 1.0K 0B 1.0K 0% /dev
|
||||
zroot/tmp 29G 3.1M 29G 0% /tmp
|
||||
zroot/usr/home 36G 7.2G 29G 20% /usr/home
|
||||
zroot 29G 96K 29G 0% /zroot
|
||||
zroot/var/audit 29G 96K 29G 0% /var/audit
|
||||
zroot/var/log 29G 90M 29G 0% /var/log
|
||||
zroot/usr/ports 31G 2.0G 29G 6% /usr/ports
|
||||
zroot/var/crash 29G 96K 29G 0% /var/crash
|
||||
zroot/var/tmp 29G 136K 29G 0% /var/tmp
|
||||
zroot/var/mail 29G 444K 29G 0% /var/mail
|
||||
zroot/usr/src 29G 96K 29G 0% /usr/src
|
||||
192.168.0.143:/zroot/peertube 815G 103G 712G 13% /var/www/peertube/storage
|
||||
</code></pre><p>以上</p>
|
||||
|
||||
|
||||
</content>
|
||||
</entry>
|
||||
|
||||
|
||||
</feed>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
# 記事一覧
|
||||
|
||||
=> /blog/freebsd-nas-auto-backup.gmi 2024年01月30日 【FreeBSD】簡単にNASの自動的にバックアップする方法
|
||||
=> /blog/rice-productive.gmi 2024年01月04日 【プログラミング】生産力を増大する方法
|
||||
=> /blog/anti-virus-dangerous.gmi 2023年12月25日 【セキュリティ】ウィルス対策ソフトは危険
|
||||
=> /blog/programming-early-return.gmi 2023年12月21日 【プログラミング】アドバイス2:早期リターン
|
||||
|
|
|
@ -0,0 +1,119 @@
|
|||
=> /blog.gmi ブログ一覧へ
|
||||
|
||||
# 【FreeBSD】簡単にNASの自動的にバックアップする方法
|
||||
投稿日:2024-01-30
|
||||
|
||||
=> /blog/digital-autonomy-076video-hosting.gmi 先月は「076動画ホスティングの解決策」という投稿を書きました。
|
||||
先週の週末、このNASに4 TiBのSSDを追加しましたので、それによりGitlerと076動画のストレージ容量が増大出来ました。
|
||||
でも、バックアップならどうすれば良いですか?
|
||||
今回はこれを解決すると思いますが、ちゃんと理解するには、まずは「076動画ホスティングの解決策」をご覧下さい。
|
||||
|
||||
## 必要なソフト
|
||||
|
||||
今回必要なソフトは1つだけで、rsyncです。
|
||||
|
||||
```sh
|
||||
# doas pkg install rsync
|
||||
```
|
||||
|
||||
## rootになれ!!
|
||||
|
||||
そこからrootアカウントで行います。
|
||||
|
||||
```sh
|
||||
# doas su -l
|
||||
$
|
||||
```
|
||||
|
||||
## ZFSで使ってディスクを確認して
|
||||
|
||||
```sh
|
||||
$ zpool list
|
||||
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
|
||||
backup 888G 259G 629G - - 0% 29% 1.00x ONLINE -
|
||||
xroot 3.62T 259G 3.37T - - 0% 6% 1.00x ONLINE -
|
||||
zroot 920G 277G 643G - - 0% 30% 1.00x ONLINE -
|
||||
|
||||
$ ls -thal /zroot /backup /xroot
|
||||
/xroot:
|
||||
total 52
|
||||
drwxr-xr-x 19 peertube peertube 19B 1月 29 23:34 peertube
|
||||
drwxr-xr-x 7 root wheel 7B 1月 28 23:30 .
|
||||
drwxr-xr-x 22 root wheel 28B 1月 28 20:32 ..
|
||||
drwxr-xr-x 17 suwako suwako 17B 1月 23 16:14 repo
|
||||
drwxr-xr-x 6 git git 8B 1月 18 16:14 git
|
||||
drwxr-x--- 8 git git 8B 1月 18 15:59 gitler
|
||||
|
||||
/backup:
|
||||
total 43
|
||||
drwxr-xr-x 19 peertube peertube 19B 1月 29 23:34 peertube
|
||||
drwxr-xr-x 22 root wheel 28B 1月 28 20:32 ..
|
||||
drwxr-xr-x 17 suwako suwako 17B 1月 23 16:14 repo
|
||||
drwxr-xr-x 6 root wheel 6B 1月 23 14:26 .
|
||||
drwxr-xr-x 6 git git 8B 1月 18 16:14 git
|
||||
drwxr-x--- 8 git git 8B 1月 18 15:59 gitler
|
||||
|
||||
/zroot:
|
||||
total 43
|
||||
drwxr-xr-x 19 peertube peertube 19B 1月 29 23:34 peertube
|
||||
drwxr-xr-x 22 root wheel 28B 1月 28 20:32 ..
|
||||
drwxr-xr-x 17 suwako suwako 17B 1月 23 16:14 repo
|
||||
drwxr-xr-x 6 root wheel 6B 1月 23 14:26 .
|
||||
drwxr-xr-x 6 git git 8B 1月 18 16:14 git
|
||||
drwxr-x--- 8 git git 8B 1月 18 15:59 gitler
|
||||
|
||||
$ du -lsh /zroot/* /backup/* /xroot/*
|
||||
6.2G /zroot/git
|
||||
142G /zroot/gitler
|
||||
104G /zroot/peertube
|
||||
6.9G /zroot/repo
|
||||
6.2G /backup/git
|
||||
142G /backup/gitler
|
||||
104G /backup/peertube
|
||||
6.9G /backup/repo
|
||||
6.2G /xroot/git
|
||||
142G /xroot/gitler
|
||||
512B /xroot/mainpc
|
||||
104G /xroot/peertube
|
||||
6.9G /xroot/repo
|
||||
```
|
||||
|
||||
## シェルスクリプトを作る
|
||||
|
||||
```sh
|
||||
$ nvim sync-backups.sh && chmod +x sync-backups.sh
|
||||
```
|
||||
|
||||
この「 && chmod +x sync-backups.sh」の部分は、「sync-backups.sh」を保存して終了したら、直ぐに実行可能にして下さいという意味です。
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
# 1 TiB
|
||||
rsync -vaHzop --delete /zroot/* /backup
|
||||
|
||||
# 4 TiB
|
||||
rsync -vaHzop --delete /zroot/* /xroot
|
||||
```
|
||||
|
||||
「rsync -vaHzop --delete /zroot/* /backup」の意味は:
|
||||
* rsync = ソフト
|
||||
* -vaHzop = 何をコピーするか表示する、アーカイブモード (1:1のコピーを作る事)、ハードリンクを保管、、オーナーを保管、許可を保管
|
||||
* --delete = もう存在しないファイルやディレクトリがあれば、消す
|
||||
* /zroot/* /backup = /zrootの内容の全部を/backupにコピーする
|
||||
|
||||
## crontabを変更して
|
||||
|
||||
最後にcrontabを変更しましょう。
|
||||
|
||||
```sh
|
||||
$ crontab -e
|
||||
```
|
||||
|
||||
```
|
||||
0 0,6,12,18 * * * /root/sync-backups.sh
|
||||
```
|
||||
|
||||
それで、毎日4回 (0:00、6:00、12:00、そうして18:00で) バックアップのスクリプトを実行されます。
|
||||
|
||||
以上
|
|
@ -3,6 +3,7 @@
|
|||
# avatar = gemini://076.moe/static/suwako.jpg
|
||||
# description = テクニカル諏訪子様のtwtxtフィード
|
||||
# link = ホームページ gemini://technicalsuwako.moe
|
||||
2024-01-30T00:00:00Z09:00 【FreeBSD】簡単にNASの自動的にバックアップする方法 - gemini://technicalsuwako.moe/blog/freebsd-nas-auto-backup.gmi
|
||||
2024-01-04T00:00:00Z09:00 【プログラミング】生産力を増大する方法 - gemini://technicalsuwako.moe/blog/rice-productive.gmi
|
||||
2023-12-25T00:00:00Z09:00 【セキュリティ】ウィルス対策ソフトは危険 - gemini://technicalsuwako.moe/blog/anti-virus-dangerous.gmi
|
||||
2023-12-21T00:00:00Z09:00 【プログラミング】アドバイス2:早期リターン - gemini://technicalsuwako.moe/blog/programming-early-return.gmi
|
||||
|
|
|
@ -0,0 +1,119 @@
|
|||
title: 【FreeBSD】簡単にNASの自動的にバックアップする方法
|
||||
author: 凜
|
||||
date: 2024-01-30
|
||||
tags: jp,blog,freebsd,nas,デジタル自主
|
||||
----
|
||||
[先月は「076動画ホスティングの解決策」という投稿を書きました。](/blog/digital-autonomy-076video-hosting.gmi)\
|
||||
先週の週末、このNASに4 TiBのSSDを追加しましたので、それによりGitlerと076動画のストレージ容量が増大出来ました。\
|
||||
でも、バックアップならどうすれば良いですか?\
|
||||
今回はこれを解決すると思いますが、ちゃんと理解するには、まずは「076動画ホスティングの解決策」をご覧下さい。
|
||||
|
||||
## 必要なソフト
|
||||
|
||||
今回必要なソフトは1つだけで、rsyncです。
|
||||
|
||||
```sh
|
||||
# doas pkg install rsync
|
||||
```
|
||||
|
||||
## rootになれ!!
|
||||
|
||||
そこからrootアカウントで行います。
|
||||
|
||||
```sh
|
||||
# doas su -l
|
||||
$
|
||||
```
|
||||
|
||||
## ZFSで使ってディスクを確認して
|
||||
|
||||
```sh
|
||||
$ zpool list
|
||||
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
|
||||
backup 888G 259G 629G - - 0% 29% 1.00x ONLINE -
|
||||
xroot 3.62T 259G 3.37T - - 0% 6% 1.00x ONLINE -
|
||||
zroot 920G 277G 643G - - 0% 30% 1.00x ONLINE -
|
||||
|
||||
$ ls -thal /zroot /backup /xroot
|
||||
/xroot:
|
||||
total 52
|
||||
drwxr-xr-x 19 peertube peertube 19B 1月 29 23:34 peertube
|
||||
drwxr-xr-x 7 root wheel 7B 1月 28 23:30 .
|
||||
drwxr-xr-x 22 root wheel 28B 1月 28 20:32 ..
|
||||
drwxr-xr-x 17 suwako suwako 17B 1月 23 16:14 repo
|
||||
drwxr-xr-x 6 git git 8B 1月 18 16:14 git
|
||||
drwxr-x--- 8 git git 8B 1月 18 15:59 gitler
|
||||
|
||||
/backup:
|
||||
total 43
|
||||
drwxr-xr-x 19 peertube peertube 19B 1月 29 23:34 peertube
|
||||
drwxr-xr-x 22 root wheel 28B 1月 28 20:32 ..
|
||||
drwxr-xr-x 17 suwako suwako 17B 1月 23 16:14 repo
|
||||
drwxr-xr-x 6 root wheel 6B 1月 23 14:26 .
|
||||
drwxr-xr-x 6 git git 8B 1月 18 16:14 git
|
||||
drwxr-x--- 8 git git 8B 1月 18 15:59 gitler
|
||||
|
||||
/zroot:
|
||||
total 43
|
||||
drwxr-xr-x 19 peertube peertube 19B 1月 29 23:34 peertube
|
||||
drwxr-xr-x 22 root wheel 28B 1月 28 20:32 ..
|
||||
drwxr-xr-x 17 suwako suwako 17B 1月 23 16:14 repo
|
||||
drwxr-xr-x 6 root wheel 6B 1月 23 14:26 .
|
||||
drwxr-xr-x 6 git git 8B 1月 18 16:14 git
|
||||
drwxr-x--- 8 git git 8B 1月 18 15:59 gitler
|
||||
|
||||
$ du -lsh /zroot/* /backup/* /xroot/*
|
||||
6.2G /zroot/git
|
||||
142G /zroot/gitler
|
||||
104G /zroot/peertube
|
||||
6.9G /zroot/repo
|
||||
6.2G /backup/git
|
||||
142G /backup/gitler
|
||||
104G /backup/peertube
|
||||
6.9G /backup/repo
|
||||
6.2G /xroot/git
|
||||
142G /xroot/gitler
|
||||
512B /xroot/mainpc
|
||||
104G /xroot/peertube
|
||||
6.9G /xroot/repo
|
||||
```
|
||||
|
||||
## シェルスクリプトを作る
|
||||
|
||||
```sh
|
||||
$ nvim sync-backups.sh && chmod +x sync-backups.sh
|
||||
```
|
||||
|
||||
この「 && chmod +x sync-backups.sh」の部分は、「sync-backups.sh」を保存して終了したら、直ぐに実行可能にして下さいという意味です。
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
# 1 TiB
|
||||
rsync -vaHzop --delete /zroot/* /backup
|
||||
|
||||
# 4 TiB
|
||||
rsync -vaHzop --delete /zroot/* /xroot
|
||||
```
|
||||
|
||||
「rsync -vaHzop --delete /zroot/* /backup」の意味は:
|
||||
* rsync = ソフト
|
||||
* -vaHzop = 何をコピーするか表示する、アーカイブモード (1:1のコピーを作る事)、ハードリンクを保管、、オーナーを保管、許可を保管
|
||||
* --delete = もう存在しないファイルやディレクトリがあれば、消す
|
||||
* /zroot/* /backup = /zrootの内容の全部を/backupにコピーする
|
||||
|
||||
## crontabを変更して
|
||||
|
||||
最後にcrontabを変更しましょう。
|
||||
|
||||
```sh
|
||||
$ crontab -e
|
||||
```
|
||||
|
||||
```
|
||||
0 0,6,12,18 * * * /root/sync-backups.sh
|
||||
```
|
||||
|
||||
それで、毎日4回 (0:00、6:00、12:00、そうして18:00で) バックアップのスクリプトを実行されます。
|
||||
|
||||
以上
|
読み込み中…
新しいイシューから参照