QNAP NASでのバックアップ用シェルを用意し、cronで動かす

QNAPのNASのファームウェアを4.0.3にアップデートしたら cronが動かなくなった。
対応方法を調査したのでそのときのメモ。
NASはTS-669 Pro

やりたいこと

rsyncを夜間に実行し、外付HDDにバックアップを取得したい。
QNAPの基本機能で外付けHDDにバックアップはできるが、ファイルの更新内容を
メールで送信したいためシェルを組み込む

対応方法

1.シェル用意
以下の2ファイルをどこかのディレクトリに作成。
私の場合は過去ログも共有フォルダで参照したいため、共有フォルダ内にシェル、ログを配置した。

#!/bin/sh

export LANG=en_US.UTF-8

sdate=`date +%Y%m%d%H%M`
cd /share/共有フォルダ/外付けHDDへバックアップ
sh copyExtHDDlib.sh > Log/$sdate.log 2>&1
RTN=$?
if [ ${RTN} -ne 0 ]
then
    # エラー
    fromAddr=”xxx@hiroroom.net”
    toAddr=”xxx@hiroroom.net”
    subjString=”copyExtHDD NG[NAS]”
    bodyString1=”外付けHDDへのバックアップが失敗しました。\n\n以下、実行ログです。\n\n”
    bodyString2=`cat Log/$sdate.log`
    bodyString=$bodyString1$bodyString2
    echo -e "From: <${fromAddr}>\nTo: <${toAddr}>\nSubject:${subjString}\n\n${bodyString}" | /usr/sbin/sendmail ${toAddr}
else
    # 正常終了
    fromAddr=”xxx@hiroroom.net”
    toAddr=”xxx@hiroroom.net”
    subjString=”copyExtHDD OK[NAS]”
    bodyString1=”外付けHDDへのバックアップが成功しました。\n\n以下、実行ログです。\n\n”
    bodyString2=`cat Log/$sdate.log`
    bodyString=$bodyString1$bodyString2
    echo -e "From: <${fromAddr}>\nTo: <${toAddr}>\nSubject:${subjString}\n\n${bodyString}" | /usr/sbin/sendmail ${toAddr}
fi
#!/bin/sh

#バックアップの実施
echo ""
echo "****************************** 共有フォルダ ***************************************"
echo `date`
rsync -av –delete /share/共有フォルダ/ /share/USBDisk1/共有フォルダ/ | grep -v "/$"
RTN=$?
if [ ${RTN} -ne 0 ]
then
    echo "**** エラー発生。処理を中断します。 ****"
    exit ${RTN}
fi

#ディスクの情報を出力
echo ""
echo "****************************** ディスクの情報を出力 ***************************************"
df -h

※rsyncの詳細出力から常に出力されるディレクトの情報は除いてています。
 grep -v “/$” でパスの最後が/で終わっているもの以外を出力。
 
 

2.ログフォルダ作成、権限割り当て
※ログフォルダも作っておく

mkdir Log
chmod u+x copyExtHDD.sh
chmod u+x copyExtHDDlib.sh

 
 

3.cron設定
/etc/config/crontabにcronの設定を追加。
1で作成したシェルを毎日朝3時に実行させる。

00 3 * * * /share/共有フォルダ/copyExtHDD.sh<br /><br />

※使っているssh接続ツールであるPoderosaだと日本語のパスが文字化けしたため、WinSCPでファイルをアップロードした

cron読み込み、その後サービス再起動

crontab /etc/config/crontab
/etc/init.d/crond.sh restart

cronが反映されているか確認

crontab -l

コメントを残す

メールアドレスが公開されることはありません。

コメントフィード

トラックバックURL: https://blog.hirotaka.jp/2013/10/qnap-nas%e3%81%a7%e3%81%ae%e3%83%90%e3%83%83%e3%82%af%e3%82%a2%e3%83%83%e3%83%97%e7%94%a8%e3%82%b7%e3%82%a7%e3%83%ab%e3%82%92%e7%94%a8%e6%84%8f%e3%81%97%e3%80%81cron%e3%81%a7%e5%8b%95%e3%81%8b/trackback/