NAS の crontab をローカルから操作する

(2024-10-26)

ts ファイルのダウンロードは NAS に実行させていますが、ローカルから編集できればとても便利です。

NAS に nano

vi エディタは使いにくいので、linux mint と同じように nano を使いたいと思います。

「パッケージセンター」から「コミュニティ」で SynoCli File Tools をインストールします。

そうすると nano が使えるようになります。また、tree も使えるようになります。

ssh 接続でパスワードを要求されないようにする

キーを生成して、秘密のキーを「~/.ssh」内に格納し、ssh でパスワードを要求されないようにします。

NAS の sudoers を変更

sudo nano /etc/sudoers

最後に、次の一行を追加します。

moheno ALL=(ALL) NOPASSWD:ALL

moheno のところはユーザー名です。

ローカルから

以下のようなシェルスクリプトを作成します。

#!/bin/sh
scp -O -P 11123 ./crontab_backup.txt moheno@192.168.0.20:/volume1/bak/iptv
# SSH接続
ssh -p 11123 moheno@192.168.0.20 <<EOF
cat /volume1/bak/iptv/crontab_backup.txt | sudo tee /etc/crontab > /dev/null
synosystemctl restart crond
EOF

crontab_backup.txt は以下のようになっています。

# Italy
* 18 * * 6 root for i in `seq 0 10 59`;do (sleep ${i}; /volume1/bak/iptv/shell/Italy.sh) & done;

そして shell から python を動かして録画します。

このシェルスクリプトを実行すると、NAS にログインすることなくローカルから NAS の cron を編集できるのでとても便利です。