バックアップしたい小さなファイルがたくさんある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
ダウンロードできるライブラリが見つからないのはどこにありますか?
- 実行する
rsync
と、見つからないライブラリが表示されます。 - 各人に対して次のコマンドを実行します。
dnf whatprovides '*/library.so'
- すべてのミラーから必要なRPMをダウンロードしてください。
- たとえば、RPMを抽出する
rpm2cpio
にcpio -idv -F file.cpio
は、次のようにします。
最後に、他のPCでrsyncを静的にコンパイルし、結果ファイルをサーバーにコピーすることができます。