Ловля ошибок в SCP или SFTP - PullRequest
0 голосов
/ 20 января 2012

Я пишу скрипт, который будет передавать файл с одного сервера на другой с использованием SCP или SFTP. Для меня очень важно различать различные типы ошибок.

Моя проблема в том, что код ошибки, возвращаемый из SFTP и (особенно) SCP, похоже, не различает разные типы ошибок.

Например, когда SCP-ing, мне кажется, что я получаю код ошибки 1, независимо от того, какой тип ошибки действительно происходит (например: отказано в разрешении, невозможно подключиться к хосту, оба возвращают код ошибки 1).

Для SFTP или SCP, есть ли способ надежно определить возникающую ошибку; без необходимости разбирать $ stderr и таким образом извлекать ошибку?

1 Ответ

0 голосов
/ 22 января 2012

Да, используйте некоторый язык сценариев (например, Perl, Python, Ruby и т. Д.) И некоторые SFTP-модули, которые могут возвращать эту информацию.

Например:

#!/usr/bin/perl
use Net::SFTP::Foreign;
my $sftp = Net::SFTP::Foreign->new($host);
$sftp->error and die "SFTP failed: " . $sftp->error;
my $sftp->put("foo", "bar");
$sftp->error and die "put failed: " . $sftp->error;
...