超簡単!Synology NASでGitHubからリポジトリを定期ダウンロードする方法
はじめに
Synology NASでGitHubから定期的にデータをダウンロードできることをご存じですか?
しかもSSH接続不要です。今回はその方法をご説明します。
概要
結論から申し上げますと、コミュニティパッケージにGitクライアントが存在し、これをインストールするとDSMのコンソールからCloneがし放題です。
そして、DSMのタスクスケジューラはユーザースクリプトが使用可能であり、ここにコンソールコマンドを直打ちできます。
はい、勘の良い方ならもうお分かりだと思いますが、タスクスケジューラーからコンソールコマンド直打ちで定期実行ができてしまうのです。
私は、DSMタスクスケジューラーのこの雑な仕様が大好きです(笑)
※権限とかセキュリティとかどうなってんねんってツッコミは受け付けません。
それでは、殆ど説明するまでも無いと思いますが(特にエンジニアには)、一応手順を紹介します。
手順
1.パッケージセンター「コミュニティ」の追加
下記の記事を参照してください。※項目1
2.Gitのインストール
パッケージセンターの検索窓に「git」と入力して頂ければすぐに見つかると思います。この際、GitServerではなくGitクライアントをインストールしてください。
※注意:パッケージセンターにコミュニティが追加されていないとGitクライアントはでてきません。

3.タスクスケジューラで一度cloneを作る
git cloneはクーロンを作成するコマンドであり、上書き更新はできません。
そこで、一旦cloneを行い、改めて更新用のスクリプトを作ります。
3-1.コントロールパネルからタスクスケジューラーを選択
3-2.作成⇒予約タスク⇒ユーザー指定スクリプトを選択
3-3.タスク設定タブより以下のスクリプトコマンドを入力
例:
cd /volume1/test
git clone https://github.com/test/test.git
※必ずダウンロードしたいディレクトリに移動してからcloneしてください
3-4.保存して即時実行する

4.改めて更新用のスクリプトを作る
指定したディレクトリにダウンロードされてる事を確認し、上記手順で改めてタスクスケジューラーのユーザースクリプトを作る。
スクリプトに下記コマンドを入れる。
cd /volume1/test/test #cloneで作成したディレクトリを必ず指定すること
git pull

※こちらが更新用のメインスケジューラーになるので、スケジュール設定して保存してください。clone用は削除してしまって構いません。
最後に
はい、ものすごーく簡単でしょ?
だいたいね、公開サーバーにポートに穴開けてSSH接続とかしたくないわけです。一旦非公開にして・・・とか滅茶苦茶めんどくさいですからね。
そもそも論、DSMにコンソールを実装してくれれば面倒はないのですが、まぁそれこそセキュリティどうなってんねんって話になるんだろうな・・・
あーすいません、愚痴です。
この様に?タスクスケジューラーは神機能です。問答無用でコンソールコマンドを受け付ける謎のセキュリティホールです(爆笑)
皆さんもタスクスケジューラーを活用してください!!(意味不明)
