変更したファイルをssh経由でgodaddyにコピーしようとしています。 Godaddyはひどいので、もちろんrsyncを許可していません。 scpを使用できますが、実際には変更されたファイルのみをコピーしたいと思います。これは不可能だと思うので、おそらくすべてのphpファイルしかscpできないのではないかと思っていました。
ただし、サブディレクトリはたくさんあるので、-rオプションを使用する必要があります。
scpを使用して、拡張子php
のすべてのファイルを再帰的にコピーする方法はありますか?
scp -r -name "*php" /local/html/ user@server:/home/html/
(機能しません)
望ましい結果
//ローカルマシン上 $ find ./source source/1.php source/2 .php source/sub source/sub/3.php source/sub/4.php source/sub/DONT-copy.txt source/sub/DONT-copy.png source/sub/sub2 source/sub/sub2/5.php source/sub/sub2/6.php //ファイルをコピーするコマンド $ [scp command here] //リモートサーバー上 $ find ./destination destination/1.php destination/2.php destination/sub destination/sub/3.php destination/sub/4.php destination/sub/sub2 destination/sub/sub2/5.php destination/sub/sub2/6.php
これは機能しません
//ローカルマシン上 $ find ./source source/1.php source/2 .php source/sub source/sub/3.php source/sub/4.php source/sub/DONT-copy.txt source/sub/DONT-copy.png source/sub/sub2 source/sub/sub2/5.php source/sub/sub2/6.php //ファイルをコピーするコマンド $ cd source; scp -r * .php user @ remote:/ destination //リモートサーバー上 $ find ./destination destination/1.php destination/2 .php
おそらくfindを試して使用することもできますが、これはそのままでは機能しないと確信しています:
find ./source -name "* .php" -exec scp {} user @ remote:{} \;
検索で複数の{}
演算子を使用できるとは思わないため、これは機能しません。
また、たとえばfindが/users/johndoe/documents/source/1.php
を返し、リモートサーバーの/home/jane/www/destination/1.php
に到達するようにしたい場合など、リモートサーバーでパスを整列させるのは難しい場合があります。
host onyがプッシュを許可し、rsyncを許可しない場合は、次のようにします。
rsync
を使用してこのシャドウディレクトリにプッシュし、出力をキャプチャします(スクリプトを作成する場合は--log-file
があります)rsync
出力から、削除する必要のあるファイルを決定するか、プッシュしてリストを作成しますできませんscp -r *.php destination
?