[sisyphus] AptRpm
Алексей Любимов
=?iso-8859-1?q?avl_=CE=C1_l14=2Eru?=
Пн Апр 12 18:19:25 MSD 2004
Завсегда.
Я просто в апреле недееспособен из за аллергии, так что помощи особой
оказать не могу.
Скрипты можно добавлять к себе в дом. папку. Там есть объект - файл.
Michael Shigorin пишет:
>On Mon, Apr 12, 2004 at 04:49:52PM +0400, Алексей Любимов wrote:
>
>
>>а также глянуть начавшийся порт этой темы
>>http://www.linux-os.ru/wiki/AptRpm
>>
>>
>
>О, а мож туда еще пару скриптиков добавить -- для синхронизации
>компонент с повтором до победы или max_attempts и для создания
>снапшотов сизифа?
>
>
>
>------------------------------------------------------------------------
>
>#!/bin/sh
>RSYNC_RSH=rsh
>MAXATTEMPTS=5
>TMOUT1=500
>TMOUT2=15
>SRCROOT=rsync://rsync.altlinux.ru/ALTLinux # 2003-04-15
>#SRCROOT=rsync://ibiblio.org/Linux/distributions/altlinux # 2002-12-07
>#SRCROOT=rsync://ftp.leo.org/ALTLinux # 2002-12-09
>DESTROOT=~ftp/pub/Linux/ALT
>#LIST="updates Sisyphus Mozilla OpenOffice"
>LIST="updates Sisyphus Mozilla "
>#LIST="updates"
>RSYNC=/usr/bin/rsync
>RSYNCARGS="-rltgoDuz --partial --timeout=$TMOUT1 --delete --delete-after"
>RSHOME=~/rsync
>MAINTAINER=mike на osdn.org.ua
>
>for mirror in $LIST; do
> OK=
> attempt=1
> LOG=$RSHOME/rsync-$mirror.log
> LOCK=$RSHOME/lock.$mirror
> FLAG=$DESTROOT/$mirror/__SYNCING__
> date >> $LOG
> [ -f $LOCK ] && {
> ps auxww | grep rsync | mail -s "OSDN: $mirror: lockfile exists" $MAINTAINER
> echo "Lockfile for $mirror exists, quitting" >> $LOG
> continue
> }
> trap "rm -f $LOCK; exit 1" INT
> touch $LOCK $FLAG
> while [ -z "$OK" -a $attempt -lt $MAXATTEMPTS ]; do
> $RSYNC $RSYNCARGS $* $SRCROOT/$mirror/ $DESTROOT/$mirror \
> >> $LOG 2>&1 && OK=1
> sleep $TMOUT2
> attempt=$(($attempt+1))
> done
> [ -z "$OK" ] && {
> tail $LOG | mail -s "OSDN: $mirror trouble" $MAINTAINER
> } || {
> rm -f $FLAG
> }
> rm -f $LOCK
> date >> $LOG
>done
>
>nice symlinks -dr $DESTROOT >/dev/null
>
>
>------------------------------------------------------------------------
>
>#!/bin/sh
># script by Michael Shigorin <mike на osdn.org.ua> for snapshotting
># ALT Linux Sisyphus locally; feel free to use and modify, would
># be glad to hear back about changes
>
># mirror/site-specific
>SRC="ftp.altlinux.org.ua::ALTLinux/Sisyphus/"
>BASEDIR="/var/ftp/pub/EMT/Sisyphus/"
>
># retry params
>MAXCOUNT=5
>TIMEOUT=60
>
># shouldn't need to be changed
>DATE=`date +%Y%m%d`
>LOGDIR="$BASEDIR/log/"
>LOGFILE="$LOGDIR/$DATE.log"
>DEST="$BASEDIR/.syncing/"
>
>RSYNCARGS="-av --partial --delete"
>
>RPMARGS="-qp --queryformat %{RELEASE}\n"
>TAGFILE="$DEST/files/i586/RPMS/altlinux-release-Sisyphus-alt*.noarch.rpm"
>
>unset OK
>
># init env
>mkdir -p "$BASEDIR" "$LOGDIR"
>cd "$BASEDIR"
>
># create hardlinked copy or init dir; order critical
>LAST=`ls -d1 20?????? 2>/dev/null | tail -1`
>rm -rf "$DEST"
>[ -n "$LAST" ] && cp -al "$LAST" "$DEST" || mkdir -p "$DEST"
>
># try to sync up
>for attempt in `seq 1 $MAXCOUNT`; do
> rsync $RSYNCARGS "$SRC" "$DEST" 2>&1 >> "$LOGFILE" && {
> OK="yes"
> break
> }
> sleep "$TIMEOUT"
>done
>
>[ -z "$OK" ] && exit 1
>
># get timestamp from specific package and move to it
>TIMESTAMP=`rpm $RPMARGS $TAGFILE | tail -1 | sed 's/alt//'`
>
>[ ! -d "$TIMESTAMP" ] && {
> mv "$DEST" "$TIMESTAMP"
> touch -d "$DATE" "$TIMESTAMP"
> # fix symlink
> rm -f current
> ln -s "$TIMESTAMP" current
>} || rm -rf "$DEST"
>
># that's all :)
>echo "** $TIMESTAMP sync OK" >> "$LOGFILE"
>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Sisyphus mailing list
>Sisyphus на altlinux.ru
>http://lists.altlinux.ru/mailman/listinfo/sisyphus
>
>
Подробная информация о списке рассылки Sisyphus