sudoを使わずにrsyncをインストールできますか?

sudoを使わずにrsyncをインストールできますか?

バックアップしたい小さなファイルがたくさんあるWebサーバー(手頃な価格の一般的なPHPホスト)にアクセスできます。 FTPを使用してアクセスできますが、非常に遅いです。を使用してファイルをコピーできますが、scpまず手動で圧縮する必要があります。-C すべてのファイルの代わりに送信する前に各ファイルを圧縮するパラメータ。理想的にはいつものように使いたいですrsync。サーバー管理者がインストールしないと言いました。アクセスせずにインストールするaptか、sudoポータブルバイナリとしてインストールできますか?

Ubuntuでrsyncバイナリを見つけましたhttps://download.samba.org/pub/rsync/binaries/ubuntu-20.04-x86_64/(通過するhttps://rsync.samba.org/download.html)。設定後、chmod +x次のエラーが発生します。

[user@server]$ ./rsync
./rsync: error while loading shared libraries: libxxhash.so.0: cannot open shared object file: No such file or directory

不足しているライブラリファイルを一度に取得する賢い方法はありますか?

サーバーがRed Hatを実行しているようです。

[user@server]$ cat /proc/version 
Linux version 3.10.0-962.3.2.lve1.5.49.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Thu Mar 4 05:39:46 EST 2021

rsyncこのディストリビューションのプリコンパイル済みバージョンは表示されません。ここで何してるの?ライブラリが欠落している(おそらく)、サーバーはそのエントリをコンパイルできません。

依存関係

berndbauschがコメントで要求した結果ldd rsyncは、必要なライブラリを表示するはずです。

linux-vdso.so.1 => (0x00007ffe589a3000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f6a681a5000) 
libz.so.1 => /lib64/libz.so.1 (0x00007f6a67f8f000) 
libpopt.so.0 => /lib64/libpopt.so.0 (0x00007f6a67d85000) 
liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f6a67b76000) 
libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f6a6789d000) 
libxxhash.so.0 => not found 
libcrypto.so.1.1 => not found 
libc.so.6 => /lib64/libc.so.6 (0x00007f6a674cf000) 
libattr.so.1 => /lib64/libattr.so.1 (0x00007f6a672ca000) 
/lib64/ld-linux-x86-64.so.2 (0x00007f6a683ae000)

だから2つだけ抜けたようです。

Rsyncローカルマシンからサーバーへ

誰かが今削除されたコメントで、他の方法ではなく、sshを介してローカルからサーバーにrsyncを試みることを提案しました。これはうまくいきません。あげるこのようなエラー:

rsync -zarvh [email protected]:/var/www/html/release /var/www/html/release
bash: rsync: command not found

ベストアンサー1

rsync と不足している必須ライブラリを解凍し、たとえば、次のようにします。$HOME/rsync

rsync次のように実行します。

cd $HOME/rsync
LD_LIBRARY_PATH=. ./rsync
# or
export LD_LIBRARY_PATH=$HOME/rsync
$HOME/rsync/rsync

ダウンロードできるライブラリが見つからないのはどこにありますか?

  1. 実行するrsyncと、見つからないライブラリが表示されます。
  2. 各人に対して次のコマンドを実行します。dnf whatprovides '*/library.so'
  3. すべてのミラーから必要なRPMをダウンロードしてください。
  4. たとえば、RPMを抽出するrpm2cpiocpio -idv -F file.cpioは、次のようにします。

最後に、他のPCでrsyncを静的にコンパイルし、結果ファイルをサーバーにコピーすることができます。

おすすめ記事