今までは自分のブログで書いてきた「Linux初心者講座」ですが、せっかく便利なフォーラムを準備していただきましたので、今後はこちらで展開させていただこうと思います。
その記念すべき第一弾は...
v0.9.1から実装されたバックアップ/リストアスクリプトをプラグインに実装しよう!
です。
コイツの利点は、“./plugins/.plugin.json”に必要な内容を追記することで、バックアップ/リストアスクリプトをsshログインすることなく、プラグインメニューから実行できるようになることです。
まずsshでログインしていただき、次のコマンドを叩きます。
nano ./plugins/.plugin.json
ディレクトリの頭を“./”で始めていますが、これはユーザー“pi”のホームディレクトリー直下という意味で、パスを全部書くと...
nano /home/pi/plugins/.plugin.json
となります。
“.plugin.json”に追加する内容は、私はこうしてみました。
{
"menu" :"Save Backup",
"active" :"yes",
"icon" :"save",
"form" :"",
"command":"/home/pi/util-backup.sh",
"output" :"",
"success":"やったね!",
"error" :"error!"
},
{
"menu" :"Read MPD_Data",
"active" :"yes",
"icon" :"open",
"form" :"",
"command":"/home/pi/util-restore.sh --tag_cache",
"output" :"",
"success":"ごっつぁんです!!",
"error" :"error!"
},
{
"menu" :"Read Backup",
"active" :"yes",
"icon" :"open",
"form" :"",
"command":"/home/pi/util-restore.sh --conf",
"output" :"",
"success":"ゲップ!!",
"error" :"error!"
}
やったね!とかごっつぁんです!とか、ふざけた表現を含みますが、この辺は機能に関係ないところなので、それぞれ好きな文言にすればヨイと思います。
注意点は...
図の場所にカンマを追加するという点です。
私は“.plugin.json”の末尾に追加しなかったのでカンマを2ヵ所追加していますが、末尾に追記する場合は、後ろのカンマは要りません。
編集内容を上書き保存するために“ctrl”キーと“o”キーを押し...
が表示されてから“enter”キーを押します。
次にテキストエディタ“nano”を終了するために“ctrl”キーと“x”キーを押します。
これで作業は終了です。
上手くいっていれば、メニューはこうなるはずです。
下線を引いてあるところが、この作業で追加されたプラグインです。
そして“Save Backup“を選択することでスクリプト“./util-backup.sh”が実行され、NAS上に2種類のバックアップファイルが作成されます。
「5つやないかい!」とか「相変わらずアニソンばっかり聴いとんのかい!」というツッコミもあろうかと思いますが、これは私が4台のホスト名の違うSMPDを走らせているという変態環境だから。
(同時にいずれか2台を走らせています)
“backup_xxxx.tar.gz”の“xxxx”の部分に入っているのが、その4台それぞれのホスト名であり、それぞれの設定ファイル類を含むバックアップファイルとなります。
何が保存されるのかは...
cat ./util-backup.sh
で確認することができます。
これらは“Read Backup”を選択し“./util-restore.sh --conf”を実行させることで、勝手に当該のバックアップファイルを読み込ませることができます。
そして図の一番下に見えているのは、tag_cacheのバックアップファイルで...
NASの楽曲データベースやプレイリストなどのバックアップファイルになっています。
これも“Read MPD_Data”を選択することで“./util-restore.sh --tag_cache”が実行され、勝手に楽曲データベースやプレイリストがバックアップファイルから読み込まれるようになっています。
こんな感じでどうでしょうか?
分かりやすかったでしょうか?
ここが違うとか、こうすればもっと分かりやすいんじゃないかとか、ご意見お待ちしています!
追記
パパリウスさんがjson構文のチェック方法を伝授してくださっています。
jsonの解析には/usr/local/bin/jqを使っています。
調べてみると、jqも簡易的な構文チェックに使えるようです。
cat /home/pi/plugins/.plugin.json | jq .
と実行すると、構文エラーがあれば
parse error: Invalid numeric literal at line 1, column 4623
という感じでエラーを表示してくれるようです。
構文に問題なければ、jsonファイルの中身がそのまま表示されます。
実際にある行末の「カンマ」を削除して
cat /home/pi/plugins/.plugin.json | jq .
してみたら
parse error: Expected separator between values at line 206, column 12
「あるべき206行目のセパレーター(カンマのことですね)に問題アリ」と正解が返ってきました。
nano ./plugins/.plugin.json
を実行した後は、念のためにコレでチェックですね。