Как завершить фоновый процесс туннеля SSH

Реализация GNU cpимеет параметр --backup=[CONTROL], который создает файлы с другими именами, если целевой файл уже существует. Формат немного уродлив, так как он использует символы тильды ('~')для разделения расширения резервной копии.

Полезным CONTROLаргументом в вашем случае может бытьnumbered:

find. -name '*.zip' -exec cp --backup=numbered '{}' '/path/to/outputdir' \;

Обратите внимание: поскольку я не знаю ни одной такой опции для mv, если вы выберете этот подход, позже вам придется удалить исходные файлы на отдельном шаге.

Одна проблема, которую я вижу в этом решении, заключается в том, что будет невозможно отличить, какой файл из какого каталога. РЕДАКТИРОВАТЬ :Хотя некоторые люди считают такое поведение уместным и является поведением браузеров по умолчанию, например, когда вы загружаете файлы с одним и тем же именем -в один и тот же каталог несколько раз. Хотя расширение имени файла для этих «резервных копий» в этом случае другое, оно также пронумеровано.

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

.

find. -name '*.zip' | while read filePath; do cp "$filePath" '/path/to/outputdir'/"$(echo "$filePath" | sed -e 's#^\\.##' -e 's#/#_#g')"; done

Кроме того, файлы, в которых на самом деле были символы подчеркивания, будут выглядеть странно, и это может быть двусмысленным, если компонент имени файла, разделенный символом подчеркивания, ранее был компонентом имени пути или нет.

Обратите внимание, что символ косой черты между '/path/to/outputdir'и командой, начинающейся с "$(echo "$filePath" |..., чрезвычайно важен!

Первое выражение sedпредназначено для того, чтобы избежать создания скрытых файлов, если вершина дерева поиска, указанная в find, начинается с символа точки. Второй - это просто замена косой черты разделителя пути символом подчеркивания.

Решение также не очень масштабируемо, так как вам, возможно, придется внести много изменений, если вы просто хотите изменить findзапрос, чтобы избежать резких результатов. Например,если запрос findтакже включает каталоги, cpне будет обрабатывать эти строки. К счастью, в этом случае копирование просто не удается, и вы даже получаете сообщение в свой поток ошибок. Перезапись файлов в вашей файловой системе — это не шутки!

0
03.03.2021, 17:25
1 ответ

Удалите -N из вашей команды, которая указывает ssh не выполнять команду

 -N      Do not execute a remote command.  This is useful for just forwarding ports.

ssh -i thekey.pem -f -L 8888:localhost:8888 host_IPv4_public_DNS

Будет вашей командой сейчас, если вы хотите иметь доступ к удаленному хосту, если вы хотите получить доступ к вашему хосту cmd. Я бы побежал

start /b ssh -i thekey.pem -f -L 8888:localhost:8888 host_IPv4_public_DNS

Это откроет соединение в фоновом режиме, вы можете завершить процесс, нажав CTRL + BREAK

0
18.03.2021, 22:27

Теги

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