.png)
Windows PC 上のフォルダーを、RaspberryPi に接続された外付けハードドライブに自動的に同期したいです。私のスクリプトは機能し、rsync を使用して 2 つのフォルダーをコピーするだけです。
タスク スケジューラ経由で自動化したいのですが、うまくいきません。タスク スケジューラから bash スクリプトとして直接実行しようとしましたが、思いついた別の方法も試しました。bash スクリプトを実行するバッチ ファイルを作成しました。バッチ ファイルを手動で実行するとうまくいきますが、タスク スケジューラ経由で実行するとうまくいきません。エラー メッセージなどが表示されないため、原因がわかりません。
また、フォルダーを作成する別のバッチ ファイルも作成し、それをタスク スケジューラ経由で実行したところ、問題なく動作しました。問題は、タスク スケジューラと bash に関係しているはずです。
ご協力いただければ幸いです。
Bash スクリプト:
#!/bin/bash rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/100D3300/[メールアドレス]://mnt/share/Bilder/通常 rsync -rtv -e "ssh -i /home/fernien/id_rsa" /mnt/g/Bilder\ 編集/[メールアドレス]://mnt/share/写真/編集
このスクリプトを実行するバッチ ファイル:
さまざまなバリエーションを試しました。-c あり、-c なし、「./」あり、なし。
@エコーオフ c:\スクリプト\ bash.exe -c "./sync.bash"
答え1
@FedonKadifeli に感謝します。問題は私のスクリプトにありました。これは手動で実行した場合は機能しましたが、理由はわかりませんでした。
@エコーオフ c:\スクリプト\ bash.exe -c "./sync.bash"
しかし、このように見えるはずです。修正した後、問題なく動作しました。バッチ スクリプトにもっと時間を費やすべきでした。
@エコーオフ : : : : cd \scripts\ bash.exe -c "./sync.bash"
答え2
cd
DOS バッチ スクリプトでは、コマンドのコミュテータのおかげで、1 行のコマンドでドライブとパスを変更できます/D
。したがって、次のようになります。
@echo off
cd /D c:\scripts\
bash.exe -c "./sync.bash"