私はたくさんの読書といくつかのテストを無駄にしました。
私はこのスクリプトをstackoverflowで見つけて正しい方向に導きましたが、私の能力は私のニーズを修正して完全に理解するには不十分です。
#! /usr/bin/perl
use warnings;
use strict;
use File::Basename;
use File::Copy;
use File::Spec::Functions qw/ abs2rel catfile /;
use Net::SSH qw/ sshopen3 /;
my $HOST = "user\@host.com";
my $SRC_BASE = "/tmp/host";
my $SRC_FILE = "$SRC_BASE/a/b/c/file";
my $DST_BASE = "/tmp/dest";
system("md5sum", $SRC_FILE) == 0 or exit 1;
my $dst_file = catfile $DST_BASE, abs2rel $SRC_FILE, $SRC_BASE;
my $dst_dir = dirname $dst_file;
sshopen3 $HOST, *SEND, *RECV, *ERRORS,
"mkdir -p $dst_dir && cat >$dst_file && md5sum $dst_file"
or die "$0: ssh: $!";
binmode SEND;
copy $SRC_FILE, \*SEND or die "$0: copy failed: $!";
close SEND or warn "$0: close: $!"; # later reads hang without this
undef $/;
my $errors = <ERRORS>;
warn $errors if $errors =~ /\S/;
close ERRORS or warn "$0: close: $!";
print <RECV>;
close RECV or warn "$0: close: $!";
シナリオ:
「メイン」ホストのディレクトリに画像ファイルがあります。/home/user/public_html/images/red/id100/image01.jpg (thru image012.jpg)
!-d. (「/images」フォルダは事前に存在します。)
入るには、リモートホストにもユーザー名とパスワードを送信する必要があります。これは、典型的な cpanel 共有サーバー環境です。
私のメインサーバーは専用で、cpanel 管理もインストールされています。
私は NET::FTP、File::Remote、Net::Telnet、および Net::SFTP を調べましたが、私のレベルまで「馬鹿げた」例はありませんでした。
最終的には ascii ファイルでもこれを行う必要がありますが、イメージを操作できるようになったら、xfermode スイッチを理解できると思います。
ヘルプと詳細な例をありがとう。私はいつもここで素晴らしいことを学びます。