Автоматизация процесса удаленного создания файлов (скриптов)

Автор markgrec, 09 августа 2019, 13:29:47

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

markgrec

Добрый день, решил написать скрипт для удаленной добавления (изменения) файлов (скрипта).
Мне необходимо:
1. Удаленно подключиться к АРМ;
2. Изменить файл /etc/rc.local - добавить путь к файлу скрипта;
3. Создать файл (скрипт) со строчным содержимым.

Вот что у меня получилось (скрипт частично работает)

#!/bin/bash

# [i]Запрос IP адреса для подключения к АРМ[/i]
echo - n "Введите IP адрес АРМ для удаленного подключения:"
read adress

#[i] Удаленное подключение[/i]
ssh user@adress <<EOF

# Получаю права root
sudo -i

# [i]Удаляю содержимое файла[/i]
cat /dev/null > etc/rc.local

# [i]Записываю файл [/i]
cat > /etc/rc.local << EOF
#!/bin/sh -e
/usr/bin/pulseaudio
/home/user/docker.sh
exit 0

EOF

#[i] Выхожу из root[/i]
exit

# [i]Создаю второй файл в домашней директории ([b]ЭТО ЧАСТЬ НЕ РАБОТАЕТ[/b]) [/i]
cat > docker.sh << EOF
#!/bin/bach
# Какое то содержимое скрипта в несколько строк...

EOF

# Перезагружаю систему
sudo reboot

EOF


Прошу помощи в коррекции скрипта (полную его работу т.к. вторая часть не работает)
Дополнительно в дальнейшем хотелось бы реализовать функцию одновременное подключение к нескольким АРМ (что бы не выполнять одних и тех же действий)
Например вводим IP, через запятую (пользователь и пароль одинаковый,  Файлы устанавливаются на несколько АРМ.

Спасибо  :)
 



markgrec


#!/bin/bash

Запрос IP адреса для подключения к АРМ
echo - n "Введите IP адрес АРМ для удаленного подключения:"
read adress

#[i] Удаленное подключение[/i]
ssh user@adress <<EOF

# Получаю права root
sudo -i

# [i]Записываю файл [/i]
printf "#!/bin/sh -e

/usr/bin/pulseaudio
/home/user/docker.sh

exit 0
" > /etc/rc.local

#[i] Выхожу из root[/i]
exit

# Создаю второй файл в домашней директории

printf "#!/bin/bach
# Какое то содержимое скрипта в несколько строк...
" > /docker.sh

# Перезагружаю систему
sudo reboot

EOF

endru

Не важно как называть маркер для текстового блока хоть EOF хоть MYCAT хоть FOE. Bash будет все считать текстовым блоком пока не увидит маркер с которого начал работу.

например:
#!/bin/bash
cat > /my/file.txt << MARKER
#текст
MARKER

cat >/my/file2.txt << MYFILE
#текст
MYFILE

а судя по первоначальному скрипту - там явно напутано с маркерами.