Есть несколько бухгалтерских компьютеров на ХР. На каждом есть расшареный ресурс «copy». Есть сервер на федоре. Задача такова. В пятницу вечером, начиная с 19 часов, сервер должен:
1. Узнать, включен ли компьютер
2. Если да, то смонтировать общий ресурс локально
3. Все содержимое ресурса упаковать в архив 7z и положить в /archives/
4. Отмонтировать сетевой ресурс
5. Выключить удаленный компьютер
6. Все это время вести лог
7. В конце процедуры отправить лог мне
Собственно вот быдлокод, который я набросал. Да, сам в панике от его быдловатости:
#!/bin/sh
HOSTMAIL="trololo@ukr.net"
ANDREYMAIL="lol@citynet.dp.ua"
IP_HEAD="192.168.1."
IP_TAIL="0"
LOG_TAIL="`date +%F` `date +%R`"
LOGFILE="/var/log/gp.log"
ARC_NAME="$(date +%F).7z"
BASES=copy
USER=Admin
PASS=123
Z7="7z a -tzip -mx5 -r0 -x@/archives/ex.txt"
INDIR="/mnt/backup/"
TARGETDIR="/archives/"
COMP1=192.168.1.10 # MAN1
COMP2=192.168.1.20 # MAN2
COMP3=192.168.1.30 # MAN3
COMP4=192.168.1.40 # MAN4
COMP5=192.168.1.50 # BUHGALTER
COMP6=192.168.1.60 # VOJAGE
function go ()
{
for i in 1 2 3 4 5 6
do
if [ "`ping -c 1 $IP_HEAD$i$IP_TAIL | grep -c Unreachable 2>/dev/null`" -eq 1 ]; then
echo "$LOG_TAIL: Host $IP_HEAD$i$IP_TAIL is avaible" >> $LOGFILE
# Монтування та створення архіву
if [ ! `mount.cifs //$IP_HEAD$i$IP_TAIL/$BASES $INDIR -o user=$USER%$PASS 2>/dev/null` ]; then
echo "$LOG_TAIL Mount $IP_HEAD$i$IP_TAIL is filed" >> $LOGFILE
else
$Z7 $TARGETDIR/$ARC_NAME $INDIR && echo "$LOG_TAIL Archive $ARC_NAME created sucsessfully" >> $LOGFILE
umount $INDIR
sleep 10
net rpc SHUTDOWN -I $IP_HEAD$i$IP_TAIL -U $USER%$PASS
fi
else
echo "$LOG_TAIL: Host $IP_HEAD$i$IP_TAIL is down" >> $LOGFILE
#echo "$LOG_TAIL: Host $IP_HEAD$i$IP_TAIL is down" | mutt -x -s "Система была выключена" $ANDREYMAIL
fi
done
}
go
1. Отправка почты работает от моего пользователя, от рута со скрипта не уходит. Какой конфиг править, тот что в /root или в /etc?
2. Диски не резиновые, как бы прикрутить удаление архивов, старше месяца?
3. Так, между прочим, может кто-нибудь знает как в виндовсе поставить запрет на отключение компьютера по пятницам? :)