1006
правок
Dkirienko (обсуждение | вклад) м (Грамматическая ошибка) |
Kekaloav (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Строка 64: | Строка 65: | ||
done | done | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Как управлять всеми ПК сразу (при наличии сервера управления) === | |||
По просьбе, делюсь опытом администрирования ПК МОС. У меня два здания, в каждом имеется свой сервер на Linux (в моем случае ubuntu - просто сервер старше чем МОС, но конкретный дитрибутив не важен). | |||
На каждом сервере 2 сетевые карты, одна смотрит грубо говоря в сеть Study (но подключено естественно проводом) с фиксированным адресом 172.ххх.ххх.16, Другая - в сеть панелей 10.xxx.xxx.26 | |||
Сервера маломощные, уровня i3 первого поколения. Два установлены для надежности(чтобы здания были независимы) . На них также работает samba и asterisk, а такжже запись с видеокамер компьютерных классов. | |||
На всех ПК прописываем в кронтаб запуск скрипта '''onreboot.sh''' при загрузке. | |||
Для этого запускаем от root '''crontab -e''' и добавляем туда С ПЕРЕВОДОМ СТРОКИ В КОНЦЕ (это важно)<syntaxhighlight lang="bash"> | |||
@reboot /root/onreboot.sh | |||
</syntaxhighlight>чтобы использовать нормальные редактор нужно сначала заменить в файле /etc/bashrc.d/editor.sh vim на mcedit | |||
Файл /root/onreboo.sh<syntaxhighlight lang="bash"> | |||
#!/bin/bash | |||
SCHOOL=`hostname | awk -F "-" '{print $1}' ` | |||
KORP=`hostname | awk -F "-" '{print $2}' ` | |||
TYPE=${SCHOOL:0:1} | |||
if [ "${KORP}" == "1" ] ; then | |||
SERVER=172.xxx.xxx.xxx | |||
NET=172.xxx | |||
if [ "${TYPE}" == "p" ]; then | |||
SERVER=10.xxx.xxx | |||
NET=10.xxx.xxx | |||
fi | |||
fi | |||
if [ "${KORP}" == "2" ] ; then | |||
SERVER=172.xxx.xxx.xxx | |||
NET=172.xxx | |||
if [ "${TYPE}" == "p" ]; then | |||
SERVER=10.xxx.xxx.xxx | |||
NET=10.xxx.xxx | |||
fi | |||
fi | |||
UP=`ifconfig | grep -A2 ${NET} | grep UP` | |||
while [ -z "${UP}" ] | |||
do | |||
echo TEST UP | |||
UP=`ifconfig | grep -A2 ${NET} | grep UP` | |||
sleep 10 | |||
done | |||
PING=`ping -c 10 ${SERVER} | grep " 0% "` | |||
while [ ! -z ${PING} ] | |||
do | |||
echo TEST PING | |||
PING=`ping -c 10 ${SERVER} | grep " 0% "` | |||
done | |||
rm /tmp/start.sh | |||
wget -O /tmp/start.sh http://${SERVER}/start.sh | |||
bash /tmp/start.sh | |||
while true | |||
do | |||
wget -O /tmp/reg.sh http://${SERVER}/reg.sh | |||
bash /tmp/reg.sh | |||
echo "wait 60" | |||
sleep 60 | |||
done | |||
</syntaxhighlight>Скрипт по hostname вычисляет номер корпуса и тип ПК (панель/ не панель) и по этой информации вычисляет адрес сервера в той сети к которой он подключен | |||
Затем скрип ожидает поднятия сетевого интерфейса и появления устойчивого пинга на сервер. | |||
Потом загружает с сервера файл start.sh и запускает его. | |||
После этого периодически (каждые 60 сек ) загружает и запускает файл reg.sh | |||
[[Категория:Скрипты]] | [[Категория:Скрипты]] | ||
[[Категория:МОС]] | [[Категория:МОС]] |