上書きせずにcronjobを介してリモートサーバーからRPiにmp3ファイルを転送する

上書きせずにcronjobを介してリモートサーバーからRPiにmp3ファイルを転送する

FTP経由でフォルダ内のすべてのファイルをリモートサーバーからRaspberry Piに正常に転送しましたが、新しいファイルのみを転送したいと思います。以下は私の作業スクリプトです。

#!/bin/bash -vx
ftp -in IP_SERVER<<END_SCRIPT
quote USER rem_user
quote PASS rem_pass
bin
prompt:off
cd /path_to_server_files
lcd /path_to_local_files
mget *.mp3
bye
END_SCRIPT

他の会社にバックグラウンドミュージックを提供する会社があります。私のアプローチは、クライアントに応じて各システムを年中無休で24時間実行するか、他の特定のcronタスクを実行させることです。 Raspberry Piは、コンピュータの代わりにこれを行うのに最適な方法です。私が知っているのは、フォルダごとに1つのクローン操作です。各フォルダには音楽ジャンルがあります。だから時々、サーバーに別の音楽を置き、クローン操作を介して週に一度、これらのファイルを転送します。そのフォルダ内のすべてのmp3ファイルをRPiに転送するように設定されています。問題は、すでに存在するファイルを含むすべてのファイルをそこに転送することです。たとえば、そこに150の音楽ファイルを入れると、RPi ARMはそれほど強力ではないため、すべてのフォルダが完了したことは言うまでもなく、そのファイルを転送するのに長い時間がかかります。回避策は、既存のファイルを上書きするのではなく、新しいファイルを上書きすることです。その後、しばらくすると、他のcronジョブは*日より古いすべてのファイルを削除します。

検索してみましたが、ftpにはまだそのようなオプションがないようです。そのため、上書きせずに転送できるwgetコマンドを見つけましたが、複数のファイルを転送することはできません。私はwgetコマンドを使用して上記のスクリプトを変換しようとしましたが、成功しませんでした。この分野で経験のある人が助けることができますか? httpの問題かもしれません。よろしくお願いします。

wgetコマンドを使ってみました。

* * * * * wget -r -l1 -N -A.mp3 'ftp://serverUser:Password@serverIP/path_to_server_files' /var/www/rd/musica/teste/ftp11.log 2>&1

間違い:

ftp://serverUser:Password@serverIP/path_to_server_files: Bad Port Number

/var/www/rd/musica/teste: Scheme Missing

rsyncに対する私の試みは次のとおりです。

rsyncd.conf:(すべての資格情報が正しいかどうかわからないので、変更できるように各ファイルをここに配置します。)

lock file = /var/run/rsync.lock
lock file = /var/log/rsyncd.log
pid file = /var/run/rsync.pid

[documents]
  path = /var/www/rd/musica/teste
  comment = The documents folder of localusername
  uid = localusername
  gid = localusername
  read only = no
  list = yes
  auth users = serverusername
  secrets file =/etc/rsync.secrets
  hosts allow = serverIP/255.255.255.0

rsyncd.secrets

localuser:password
serveruser:password

rsync コマンドを実行します。

rsync -rtv serverusername@serverIP::documents/path_to_server_files/*.mp3 /path_to_local_destination_folder

次のエラーを返します。

rsync: failed to connect to serverIP (serverIP): Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.9]

ベストアンサー1

見たことがありますか?同期?あなたの質問を私が解釈した方法で見ると、これはあなたが望むものと正確に一致するはずです。する方法の説明ですrsyncデーモンの設定SSH接続は必要ありません。

おすすめ記事