Найти в Дзене
Кулибин74

Распространить новую версию 1С на компьютеры с Ubuntu в сети.

Добрый день. Поступила задача распространить новую версию 1С на все компьютеры в организации. Руками это делать долго так как в сети порядка 150 компьютеров, было принято решение делать это с помощью скрипта используя rsync, для этого нам потребуется доустановить sshpass на тот компьютер откуда будем запускать скрипт. Устанавливаем sshpass командной Apt install sshpass Далее накидывает скрипт на баше такого вида #!/bin/bash host_file="hosts.txt" files_file="/share/portable/dist/1cv8/" remote_path="/opt/" remote_user="user" password="pass" while IFS= read -r host || [[ -n "$host" ]]; do [[ -z "$host" ]] && continue echo "==Передача файлов на $remote_user@$host ==" sshpass -p "$password" rsync -avz -e "ssh -o StrictHostKeyCheking=no" "$files_file" "$remote_user@$host:$remote_path" || echo "ошибка при при копировании на $host" done < "$host_file" Разберем по пунктам. В этом файле хранится список компьютеров на которые надо распространить новую версию. Каждое имя компьютера или i

Добрый день. Поступила задача распространить новую версию 1С на все компьютеры в организации. Руками это делать долго так как в сети порядка 150 компьютеров, было принято решение делать это с помощью скрипта используя rsync, для этого нам потребуется доустановить sshpass на тот компьютер откуда будем запускать скрипт.

Устанавливаем sshpass командной

Apt install sshpass

Далее накидывает скрипт на баше такого вида

#!/bin/bash
host_file="hosts.txt"
files_file="/share/portable/dist/1cv8/"
remote_path="/opt/"
remote_user="user"
password="pass"
while IFS= read -r host || [[ -n "$host" ]]; do [[ -z "$host" ]] && continue
echo "==Передача файлов на $remote_user@$host =="
sshpass -p "$password" rsync -avz -e "ssh -o StrictHostKeyCheking=no" "$files_file" "$remote_user@$host:$remote_path" || echo "ошибка при при копировании на $host"
done < "$host_file"

Разберем по пунктам.

В этом файле хранится список компьютеров на которые надо распространить новую версию. Каждое имя компьютера или ip адрес записывается на новой строке.

hosts_file="hosts.txt"

Далее указываем какую папку будем копировать.

files_file="/share/portable/dist/1cv8/"

Папку в которую будем копировать на удаленном компьютере.

remote_path="/opt/"

Пользователь с root правами на удаленном компьютере и пароль от него.

remote_user="user"
password="pass"

Тело кода это цикл в котором происходит чтение каждое строки в файле hosts.txt с именами компьютеров и записью их в переменную host и проверкой пустой строки. И передача файлов с помощью rsync. И отключением проверки ключей с помощью параметра

-e "ssh -o StrictHostKeyCheking=no"

Если было полезно ставьте палец вверх.