(2023/02/25追記)この記事の内容は古いです。本記事をリライトした「Raspberry Pi 4 と docker-mirakurun-epgstation で録画サーバーを構築する (2023年2月版)」をご覧ください。
(2021/04/06追記)この記事の内容は古いです。本記事をリライトした「Raspberry Pi 4とdocker-mirakurun-epgstationで録画サーバーを構築する (2021年4月版)」をご覧ください。
本記事は「2021年3月版録画サーバー構築シリーズ」の第4回目です。前の話は「録画サーバー構築③ Dockerを利用してMirakurunとEPGStationをインストールする」をご覧ください。
先日、Raspberry Pi 4 Model B 4GB(以下ラズパイと記す)を購入して、録画サーバーを構築した。
前回までの連載で、ラズパイで録画サーバーを構築する作業は終わったが細かな課題が残ったままになっている。
本記事では残る課題のうち「エンコードした動画をNASに転送したい」の問題に対応したい。
- 環境について
- cifs-utilsを使ってNASをマウントする
- autofsを使って一定期間アクセスがなければNASのディスクを自動でアンマウントする
- ラズパイからNASへファイルを転送する
- 関連記事
環境について
前提としてNASには「Synology DiskStation DS220j」を使っている。DS216jはほとんど活用できないままDS220jに移行したため、DS220jをもっと活用していきたいと考えている。
DS220jではSambaを使ってファイル共有をしている。NASへファイルを転送するためには以下の問題と向き合う必要がある。
- ラズパイにNASのディスクをマウントする
- ずっとマウントしているとNASのディスクを消耗してしまう
- 転送済みのファイルは転送しない
これらの課題を解決する必要がある
cifs-utilsを使ってNASをマウントする
前述の通り、DS220jではsambaでファイル共有をしている。
「Raspberry Pi 3 に NAS をマウントさせる - Qiita」と「Raspberry piにNASをマウントした時の覚書 - Qiita」を参考にラズパイでSambaで共有しているディレクトリをマウントさせる。
cifs-utilsのインストール
sudo apt install -y cifs-utils
Sambaにアクセスするための認証情報ファイルを作成する
vim ~/.smbcredentials
認証情報をファイルに書いておく。
username=ユーザーID password=パスワード
認証情報を保存するのを忘れない。
chmod 600 ~/.smbcredentials
cifs-utilsを使ってディスクをマウントする
sudo mkdir /mnt/nas sudo chmod 777 /mnt/nas sudo vim /etc/fstab
NASに割り振られているIPアドレスは 192.168.68.126
とする。fstabに1行追加する。
//192.168.68.126/video /mnt/nas cifs vers=2.0,credentials=/home/pi/.smbcredentials,iocharset=utf8
/mnt/nas
がマウントできるか確認する。
$sudo mount -a $ ls /mnt/nas 20160702_074443000_iOS.MOV 20170101_123605000_iOS.mp4
実際にNASへファイルをコピーする
NASへファイルを転送するには普通にcpコマンドを叩けば良い。
cd /data/recorded/ sudo cp /data/recorded/'20210304_ほげほげほげ[解][字].mp4' /mnt/nas
アンマウント
ラズパイは24時間運用だが、NASをマウントしっぱなしにするっとNASに挿しているHDDを痛めてしまう。NASにアクセスしないときにはアンマウントしておきたい。
sudo umount /mnt/nas
autofsを使って一定期間アクセスがなければNASのディスクを自動でアンマウントする
NASのディスクをマウントするとHDDが回った状態になってしまいます。ディスクの稼働率を下げるために、アクセスしていなければアンマウントしたいです。かと言ってアクセスするたびにマウントさせるのもなかなか面倒くさいです。
ディスクへのアクセスが一定期間なければ自動でアンマウントして、ディスクへのアクセスがあれば自動でマウントしてくれる autofs を導入します。
「NASをautofsでマウントする – NorthPage」と「ON THE HAND: Raspberry Pi の autofs で NAS のバックアップ」と「Ubuntu 18.04 にて autofs による CIFS (SMB) 自動マウントを設定する」を参考にしてautofsの導入を進めた。
autofsのインストール
sudo apt install -y autofs
autofsの設定
autofsの設定は以下にあります。
vi /etc/auto.master
ここでは特になにも追記する必要はありません。
$ sudo vim /etc/auto.master.d/direct.autofs
以下のように記述します。
/- /etc/auto.direct
続いてNASの認証情報を入力します。
$ sudo vim /etc/auto.direct
以下のように記述します。
/mnt/nas -fstype=cifs,rw,vers=2.0,credentials=/home/pi/.smbcredentials,iocharset=utf8 ://192.168.68.126/video
あとはautofsを起動すれば設定は終わり。
$ sudo systemctl enable autofs $ sudo systemctl start autofs
ラズパイからNASへファイルを転送する
NASへコピー(テスト)
sudo rsync -auzvn /data/docker-mirakurun-epgstation/recorded/encoded/ /mnt/nas
NASへコピー
sudo rsync -auzv /data/docker-mirakurun-epgstation/recorded/encoded/ /mnt/nas