scp
一部のファイルを移動し、ターゲットサーバー上のそのファイルの既存のインスタンスを上書きするために使用したいと思います。そのうちのいくつかは読み取り専用である可能性があり、もちろんscp
「権限の拒否」によって失敗します。--force
の型スイッチが見つからないようです。scp
これは可能ですか?
私は知っていますが、rsync
現在ターゲットサーバーでは利用できません。
答え1
書き込み権限がないと、ファイルを変更/上書きできず、scp
ファイルを変更するオプションもありません。
この問題を解決するには、まずサーバーに接続(ssh
使用するなど)し、ファイルの権限を変更する必要があります。何をすべきかわからない場合は、問題を解決するための簡単なコマンドは次のとおりです。
chmod +w /path/to/your/file
いくつかの注意:
おそらく、これらのファイルが読み取り専用である理由があります。何をする前に、なぜこの設定を変更しても問題が発生したり、セキュリティホールが発生しないことを確認してください。
必要に応じてコマンドを実行した後、書き込み権限を削除できます
scp
(chmod -w /path/to/file
:使用)。読み取り専用権限を持つファイルが多すぎる場合は、そのファイルを見つける必要があります。
find
(少なくともほとんどのLinuxディストリビューションで利用可能なGNUバージョン)-perm
利用可能なテストがあります(man find
詳細)。誰かがrootに接続するか、を使用することを提案するかもしれません
sudo
。しかし、マブソサ、そうではありません。これがどれほど間違っているかは言えません。
答え2
サーバーがSFTPを使用できる場合(通常は使用可能)、次のものが使用できます。SSHFS。これにより、クライアントにリモートファイルをマウントできます。サーバーにSFTPデーモンをインストールする必要があります。ヒューズクライアントから。
mkdir /net/myserver
sshfs myserver:/ /net/server
その後、ファイルがローカルなのかリモートなのか気にせずに、cp
などchmod
のローカルコマンドを使用できます。をrsync
使用して帯域幅を節約するデルタ転送アルゴリズム(rsyncが両方のパスをローカルと見なすとオフ)を使用するように指示するオプションをrsync
渡します。--no-whole-file
rsync -a --no-whole-file somedir /net/myserver/somewhere
答え3
Rsyncはターゲットサーバーに存在する必要はありません。
# rsync -avz -e ssh /path/to/files/ [email protected]:/tmp/
これに関する情報は次のとおりです。
http://troy.jdmz.net/rsync/index.html
前述のように、読み取り専用ファイルを軽く見ないでください。自分が何をしているのかを正確に知っているとします。別の方法は、ファイルをターゲットサーバーの/ tmp / blahディレクトリにscpまたはrsyncしてから書き込んで移動することです。
答え4
scpが特定のファイルに対して「許可拒否エラー」を表示する場合(ただし、ssh -vに認証の成功が表示される)、問題は、既存のファイルを別の権限セットで上書きしようとしたり、ファイルに別の所有者がいる可能性があることです。 (その他の権限セット)。
元のファイルを削除してみてください。次にその後のscpsを上書きします。