• 締切済み

scpコマンドで、「追記」のオプションはありますか?

scpコマンドで、「追記」のオプションはありますか? 会社で、scp(scp2)のコマンドを組み立てている、Cシェルの改修をすることになりました。 私は"scp"というものを知ったのがここ数日、Cシェルもかろうじて読めるくらいなのですが、そのシェルを作った方がもう退職されてしまったため、私が改修することになりました… 概要は、SSHサーバ上にあるファイルを別サーバへコピーしているのですが、それを「追記」できるようにしたいのです。 いくつかサイトを見てみたのですが、それらしきオプションがある、というのは見つけられませんでした。 もう、手も出せず困っています。。。 どなたか、詳しい方からのご教示をお待ちしております。

みんなの回答

回答No.1

scpコマンドそのものにはファイルの追記機能は無いと思います。 追記と言っても色々なパターンがある気がします。 以下の中に所望のものはありますか? (1)別マシン(remote-host)にある「/home/test/test.txt」というファイルにメッセージを1行追加する場合、次のようになります。 % echo "test message" | ssh remoto-host 'cat >> /home/test/test.txt' (2)追記するファイルが自マシンにあるのであれば、自マシン上で追記した後コピーすることになります。ただ、(scpによる)ネットワークを介したファイルコピーはファイルが大きくなるほど時間がかかるので、コピーを行う頻度を下げる等の工夫が必要です。 % echo "test message" >> /home/test/test.txt % scp -p /home/test/test.txt remote-host:/home/test/test.txt (3) (2)の際、scpの代わりにrsyncを使うと、コピー元とコピー先のファイル内容を比較して 、極力変化した部分だけをコピーするので追記したファイルを扱う場合に効率が良いです。(ただ(2)で言ったコピー頻度を下げる工夫はやはり必要だと思います。)

関連するQ&A

専門家に質問してみよう