Конечно, могут. Вы можете монтировать что угодно(фактические файловые системы дисков, файловые системы fuse, overlayfs, tmpfs, связывания и т. д. )ниже /sys
или /proc
, расширяя и/или заменяя интерфейсы, предоставляемые ядром.
Хорошо ли это, это совсем другое дело.
Пример:
# unshare -m
# touch /tmp/foo
# mount -B /tmp/foo /proc/1/status
# echo FOR GREAT JUSTICE > /proc/1/status
# cat /proc/1/status
Как сказал dirkt, это будет выполнять каждую команду последовательно --, т. е. следующая копия не будет запущена, пока первая не будет выполнена.
Если вы хотите, чтобы скрипт выполнялся в разумные сроки, вы можете добавить символ &
в конец строки или блока кода (, заключенного в фигурные скобки ), чтобы выполнить команду в фоновом режиме и немедленно начать следующий, как этот:
#!/bin/bash
for server in $(cat server.txt); do
scp -r $username@$server:/tmp/backup/*.txt* /backup/ &
done
Написанные так, они будут идти один за другим.
Взгляните наparallel
(вам может понадобиться установить программный пакет )для его параллельного выполнения. Кроме того, не выполняйте все 300 сразу, ограничьте количество одновременных выполнений (, иначе в целом это будет медленнее ).
Вы можете войти в систему без пароля; вам нужно будет создать пару ключей ssh, поместить закрытый ключ в машину, с которой вы делаете scp
, и поместить открытый ключ в ~/.ssh/authorized_keys
на всех 300 машинах, с которых вы копируете. Если ключи находятся в правильных местах, вам не нужно менять свой сценарий.