<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Rsync on Ingenboy.inc</title>
    <link>https://blog.ingenboy.com/tags/rsync/</link>
    <description>Recent content in Rsync on Ingenboy.inc</description>
    <image>
      <title>Ingenboy.inc</title>
      <url>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://blog.ingenboy.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.152.2</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 May 2025 17:25:03 +0900</lastBuildDate>
    <atom:link href="https://blog.ingenboy.com/tags/rsync/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Make back-up mechanism of self-hosted drive using Rsync and nginx</title>
      <link>https://blog.ingenboy.com/post/rsync_for_drive/</link>
      <pubDate>Fri, 02 May 2025 17:25:03 +0900</pubDate>
      <guid>https://blog.ingenboy.com/post/rsync_for_drive/</guid>
      <description>&lt;h1 id=&#34;背景&#34;&gt;背景&lt;/h1&gt;
&lt;p&gt;自宅でfilebrowserというOSSを使ってwebからアクセス可能なドライブを作ったのですよ。
ただね、なんとこの間、5年間動かし続けた自作PCが壊れてしまい、直すまでドライブが使えないという問題が発生した。
Mean Time Between Failureをなるべく短くするために以下の二つの手段でドライブを冗長化する。
（しかも、リージョンが分かれているという。自宅で停電が発生しても、実家のドライブにアクセスするようになります。）&lt;/p&gt;
&lt;ol start=&#34;0&#34;&gt;
&lt;li&gt;filebrowserの下準備&lt;/li&gt;
&lt;li&gt;メインのノードとは別にバックアップノードを用意しておき、rsyncで定期的にファイルを同期する&lt;/li&gt;
&lt;li&gt;filebrowserの前にnginxが動いているが、ここでHCを導入。メインがぶっ壊れた時にはバックアップにLBする。&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&#34;0-filebrowserの下準備&#34;&gt;0. filebrowserの下準備&lt;/h1&gt;

&lt;details&gt;
  &lt;summary&gt;Details&lt;/summary&gt;
  &lt;p&gt;filebrowserの立て方を簡単に教えますね。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;バイナリをビルドするかダウンロードする（https://github.com/filebrowser/filebrowser）
/usr/local/binに移動する。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;パスワードとかゴニョゴニョする。パスワードのハッシュを生成。そして、&amp;ndash;passwordの引数で渡す&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;filebrowser hash mypassword
&lt;/code&gt;&lt;/pre&gt;&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;ユニットファイルを作る。
例：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Unit]
Description=FileBrowser Web UI
After=network.target

[Service]
ExecStart=/usr/local/bin/filebrowser -a 0.0.0.0 -p 10001 -r /home/ray/hdd/filebrowser -d /etc/filebrowser/filebrowser.db --username hogehoge --password hogehoge --log /var/log/filebrowser.log 
WorkingDirectory=/etc/filebrowser
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;sudo systemctl daemon-reload する
sudo systemctl&lt;/p&gt;
&lt;p&gt;hogehogeが出力されたら、それを&amp;ndash;passwordで渡す。
以上&lt;/p&gt;
&lt;/details&gt;

&lt;h1 id=&#34;1-rsyncで定期的にファイルを同期する&#34;&gt;1. rsyncで定期的にファイルを同期する&lt;/h1&gt;
&lt;p&gt;以下のコマンドを実行するcronジョブを作っておきましょう。毎時間ファイルを同期してくれます。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;rsync -avz  -e ssh ray@evn:~/hdd/filebrowser/ /opt/filebrowser_drive/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;cronジョブの作り方は簡単&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo crontab -e
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;これで開いて、以下のジョブを登録する&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;*/1 * * * * rsync -avz -e &amp;#34;ssh -i /home/ray/.ssh/id_ed25519&amp;#34; ray@100.64.1.61:~/hdd/filebrowser/ /opt/filebrowser_drive/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;cronはrootで実行されるので、鍵を指定しないと/home/root/.ssh　の鍵を使いますが、めんどいので自分のを使うようにする。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
