[Sysadmins] samba (pdc) + ddns + dhcp + squid и mail?

Вадим Илларионов =?iso-8859-1?q?master_=CE=C1_nstel=2Eru?=
Вт Июн 24 18:45:01 MSD 2008


Вадим Илларионов wrote:

> У меня из cron.daily запускается пара скриптов.

Эти скрипты я писал давненько.
А уже отправив сюда, несколько переосмыслил и переписал ldap_restore.
Если кому интересно, вот он:

,----[ /var/ftp/pub/Server/LDAP/ldap_restore ]
| #!/bin/sh
| 
| WDIR=/var/lib/ldap
| SITE=my.domain
| BASE="$WDIR/bases/$SITE"
| LOGS="$WDIR/dblogs/$SITE"
| MinSize=50000                                 # Минимальный размер упакованной базы, байт.
| Users=`cat $WDIR/bases/Users.$SITE`           # Файл со списком пользователей.
| SLEEP=10                                      # 9 мало - даже пустая база ломается...
| 
| Restore(){
|       /sbin/service slapd condstop            # Работает - тормознём.
|       rm -f $BASE/*                           # Старую базу - фтопку.
|       /sbin/service slapd start               # Да будет новая, пустая!
|       echo -n "Waiting $SLEEP seconds while empty base creates: "
|       for ((s=$SLEEP;s; s--)); do
|               echo -n "$s "
|               sleep 1
|       done
|       echo
|       /sbin/service slapd condstop            # Перед заполнением - остановить.
|       bzip2 -cd "$LAST" | /usr/sbin/slapadd   # Осталось заполнить,
|       chown -R ldap.ldap $BASE $LOGS          # допуски поправить -
|       /sbin/service slapd start               # и за работу.
| }
| 
| for ((i=1;;i++)); do
|       let n=i-1
|       [ $n -gt 0 ] &&
|       PREV=`ls -1 $WDIR/bases/*.bz2 | tail -$n | head -1`
|       LAST=`ls -1 $WDIR/bases/*.bz2 | tail -$i | head -1`
|       SIZE=`stat -c %s $LAST`
|       [ $SIZE -gt $MinSize ] && {
|               echo "Last relevant base dated `basename $LAST .ldif.bz2`"
|               break
|       }
|       case $PREV in
|               "$LAST")
|                       echo "No relevant base found."
|                       exit 1
|               ;;
|       esac
| done
| 
| for User in $Users; do
|       id $User >/dev/null || {
|               echo "User $User is out of base. Restoring."
|               Restore
|               break
|       }
| done
| 
| case $1 in
|       --force|-f) Restore ;;
| esac
`----
_________________________________
С уважением,
Вадим Илларионов
системный администратор
ООО "Новые Системы Телеком"
UIN: 7899517
JID: master at usib dot irkps dot ru
Телефоны:
- рабочий    +7 495 6414045+5885
- мобильный  +7 916 3889337




Подробная информация о списке рассылки Sysadmins