clusterssh: передать параметры ssh

доб[234]

Если в корневом каталоге /dev/независимо находится файлfoo:

debugfs -f <(echo cat /foo) /dev/whatever | tail -n +2 > /restore/file

общий подход

Общий подход заключается в создании ВМ с двумя дисками (с файлами в необработанном режиме ), один из которых является образом (, переданным ВМ для чтения -только ), а другой — для восстановление файла (, если вы не можете использовать сеть для его передачи ).

Вы должны быть в состоянии загрузиться с образа (, если нет :, создать виртуальную машину с тремя дисками, один для загрузки )и, таким образом, получить доступ к файловой системе.

Поскольку вы не можете монтировать, вам нужно записать данные в какой-либо форме, которая распознается без файловой системы, например.

tar -cf /dev/vdc /etc/passwd

На хосте вы можете просто прочитать файл изображения:

tar -xf imagefile.img

tarраспознает конец архива и игнорирует остальную часть файла.

1
26.03.2020, 05:39
1 ответ

Если вы хотите передать пробел внутри параметра, вам нужно посмотреть, как кавычки и двойные -кавычки обрабатываются сценарием perl cssh. Простой способ сделать это — использовать встроенную опцию -в отладке. На уровне 2 он покажет вам запущенную команду xterm.Он довольно сложный и включает в себя встроенный perl-скрипт, заключенный в одинарные кавычки. Внутри скрипта он устанавливает переменную в строку, заключенную в двойные кавычки. Поэтому, когда вы указываете параметр, например -o "-o 'x y'", выполняется:

xterm... -e perl -e '... my $command="ssh -o 'x y'";... '

Это разбивает perl-скрипт на 2 слова, поэтому работать не будет.

Если вы используете двойные кавычки в -o "-o \"x y\"", вы получите

... my $command="ssh -o "x y"";

Это нарушает присваивание perl, так как x yнаходится за пределами строки.

Наконец, используйте одинарные кавычки и экранированные двойные кавычки, -o '-o \"x y\"', и это должно работать:

... my $command="ssh -o \"x y\"";
1
19.03.2021, 02:32

Теги

Похожие вопросы