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

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

Оффлайн markgrec

  • Новичок форума
  • Topic Author
  • Сообщений: 5
Добрый день, решил написать скрипт для удаленной добавления (изменения) файлов (скрипта).
Мне необходимо:
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

  • Новичок форума
  • Topic Author
  • Сообщений: 5
#!/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

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 1835
  • Новосибирск
  • Jabber: endru@jabber.ru
Не важно как называть маркер для текстового блока хоть EOF хоть MYCAT хоть FOE. Bash будет все считать текстовым блоком пока не увидит маркер с которого начал работу.

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

cat >/my/file2.txt << MYFILE
#текст
MYFILE
а судя по первоначальному скрипту - там явно напутано с маркерами.
 
Пользователи, которые поблагодарили этот пост: markgrec