> Привет! > > К сожалению с обраюоткой логов помочь тебе не смогу :( > как-то просто внимания на это не обращал > Меня больше интерисует твой "скриптик" :) > Я делал что-то похожее - но чувствую, что получилось неуклюже. > > А в сторону Amanda ты не смотрел?
Смотрел, но все это, ей богу, оказались совершенно ненужные монстры, во всяком случае для меня. К сожалению у меня юниксового опыта не так много, года 2-3, поэтому по старинке ищещь какие-нить проги. Но когда они тебя чем-то не устраивают и начинаешь в них копаться, то выясняется что они используют тот же tar & find. Причем используют с ошибками, как выяснилось после попытки запустить бекап из пекеджа hdup. Вот скрипт который лежит на всех серверах, его я где-то в сети нашел и переписал основательно убрав кучу лишнего кода. #!/bin/bash FULLBACKUPDAY="0" ARCEXT=".tgz" REMOTEHOST="warzavod" REMOTEUSER="root" REMOTESPOOLDIR="/var/data/backups" RBACKUPRUNDIR="/var/run/rbackup" BACKUPDIRS="/etc/rbackup/startdirs" EXCLUDEFILE="/etc/rbackup/excludes" LOCKFILE="$RBACKUPRUNDIR/lock" REFFILE="$RBACKUPRUNDIR/reffile" TMPFILELIST="$RBACKUPRUNDIR/tmplist" MYNAME=`hostname` if [ -f $EXCLUDEFILE ] then EXCLUDEFILE="--exclude-from=$EXCLUDEFILE" else EXCLUDEFILE='' fi if [ -f $LOCKFILE ] then echo "The lockfile $LOCKFILE exists so probably another backup is running." echo "Exiting." exit 2 fi touch $LOCKFILE # # determine backup-type # BTIME=`date +%H%M` DOW=`date +%w` MONTH=`date +%m` YEAR=`date +%Y` BTODAY=`date +%Y%m%d` FILENAME="$BTODAY"_"$BTIME" if [ ! -f $REFFILE -o $DOW == $FULLBACKUPDAY -o "$1" == "full" ] then FULL="YES" FILENAME="$FILENAME""_full" else FULL="NO" FILENAME="$FILENAME""_incr" fi # # remote directory handling # BACKUPFILE="backup_""$FILENAME""$ARCEXT" LISTFILE="list_""$FILENAME" ARCHLOGFILE="alog_""$FILENAME" BACKUPPATH="$REMOTESPOOLDIR/$MYNAME" ssh [EMAIL PROTECTED] "mkdir --mode=0770 $BACKUPPATH >/dev/null 2>&1" # # Main backup routine # # update atime of reffile if [ "$FULL" == "NO" ] then (nice find `cat $BACKUPDIRS` -xdev -cnewer $REFFILE ! -type d -print > $TMPFILELIST) 2>&1 BACKUPDIRS=$TMPFILELIST fi touch "$REFFILE"".run" (nice tar $EXCLUDEFILE --ignore-failed-read -cSzf - -T $BACKUPDIRS | ssh [EMAIL PROTECTED] "cat - > $BACKUPPATH/$BACKUPFILE") 2>&1 || ERROR="1" ssh [EMAIL PROTECTED] "tar -tzvf $BACKUPPATH/$BACKUPFILE | grep -v -e './$' > $BACKUPPATH/$LISTFILE" rm -f $LOCKFILE rm -f $TMPFILELIST if [ "$ERROR" == "1" ] ; then echo "Error occured" exit 2 else mv "$REFFILE"".run" $REFFILE fi скрипт на центральном сервере, который запускает все это... ORAPATH='/u01/app/oracle/admin/simain' ORALOGON="manager/$SQLPW" function mysql_backup () { ssh $host rm -fr /usr/backup/* ssh $host msb $mysql_path $SQLPW /usr/backup 2>&1 | sed "s/^/$host: /" } function host_backup () { (ssh $host rbackup.sh) 2>&1 | sed "s/^/$host: /" } host='host1' mysql_path='/u03/mysql' mysql_backup ssh host1 su - oracle -c "$ORAPATH/export_generate.pl $ORALOGON > $ORAPATH/export.param" 2>&1 | sed 's/^/titanic: /' ssh host1 su - oracle -c "exp $ORALOGON parfile=$ORAPATH/export.param file=/usr/backup/oracle_`date +%d%m%Y`.dmp" 2>&1 | sed 's/^/titanic: /' ssh host1 su - postgres -c "pg_dumpall > /usr/backup/postgres_`date +%d%m%Y`" 2>&1 | sed 's/^/titanic: /' host_backup host='host2' host_backup host='host3' host_backup host='host4' mysql_path='/var/lib/mysql' mysql_backup host_backup host='host5' mysql_path='/usr/local/mysql/var' mysql_backup host_backup -- Sergey Polyakov aka BeerBong Chief of WebZavod http://www.webzavod.ru Tel. +7 (8462) 43-93-85 | +7 (8462) 43-93-86 mailto:[EMAIL PROTECTED]