* [devel] sis mirroring script
@ 2004-04-28 13:37 Nick S. Grechukh
2004-04-28 14:01 ` [devel] " Michael Shigorin
0 siblings, 1 reply; 7+ messages in thread
From: Nick S. Grechukh @ 2004-04-28 13:37 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 449 bytes --]
вот похвастаюсь :-)
исходники: две кружки кофе и 20 минут.
результат: скриптик для скачивания компоненты kernel сизифа с учетом юзерского
блэклиста, с версионированием, с юзерской структурой компонент (вместо
большого classic) и много чего... в общем-то request for comment, там еще
дописывать и дописывать. пока на .kernel буду обкатывать.
--
-------------------------
WBR, Nick S. Grechukh
Refractory Trading House
network administrator
[-- Attachment #2: _updatesystem_3 --]
[-- Type: text/plain, Size: 612 bytes --]
sis_site="ftp.altlinux.ru"
sis_url="/pub/distributions/ALTLinux/Sisyphus/i586/RPMS.kernel"
local_path="/mnt/win_d/sisyph/files.kernel/i586"
today_folder=`date +%Y%m%d`
[ -d $local_path/RPMS.$today_folder ] || mkdir $local_path/RPMS.$today_folder
lftp -c "open $sis_site; cd $sis_url; ls " | awk '{print $9}' | while read sp; do s=0; [ -e i586/RPMS.kernel/$sp ] || (for bl_entry in `cat blacklist`; do echo $sp | grep -q "$bl_entry" && s=1; done; [ $s -eq 1 ] || echo $sp); done | (echo open $sis_site; echo cd $sis_url; echo lcd $local_path/RPMS.$today_folder; while read pkg; do echo get -c $pkg; done) | lftp
[-- Attachment #3: blacklist --]
[-- Type: text/plain, Size: 52 bytes --]
kernel-source-2.4.21
kernel-source-2.4.23
kernel22
^ permalink raw reply [flat|nested] 7+ messages in thread
* [devel] Re: sis mirroring script
2004-04-28 13:37 [devel] sis mirroring script Nick S. Grechukh
@ 2004-04-28 14:01 ` Michael Shigorin
2004-04-28 15:53 ` Nick S. Grechukh
2004-05-11 15:00 ` [devel] Re: sis mirroring script Nick S. Grechukh
0 siblings, 2 replies; 7+ messages in thread
From: Michael Shigorin @ 2004-04-28 14:01 UTC (permalink / raw)
To: devel
[-- Attachment #1.1: Type: text/plain, Size: 256 bytes --]
On Wed, Apr 28, 2004 at 04:37:37PM +0300, Nick S. Grechukh wrote:
> вот похвастаюсь :-) исходники: две кружки кофе и 20 минут.
Ууу.... rsync(1) видели? ;-)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
[-- Attachment #1.2: daily-rsync.sh --]
[-- Type: text/plain, Size: 1362 bytes --]
#!/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"
[-- Attachment #1.3: rsync-all.sh --]
[-- Type: text/plain, Size: 1302 bytes --]
#!/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 Daedalus"
LIST="updates Sisyphus Mozilla Daedalus"
#LIST="updates"
RSYNC=/usr/bin/rsync
RSYNCARGS="-rltgoDuz --partial --timeout=$TMOUT1 --delete --delete-after"
#RSYNCARGS="-rltgoDuz --partial --timeout=$TMOUT1 --delete "
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
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] Re: sis mirroring script
2004-04-28 14:01 ` [devel] " Michael Shigorin
@ 2004-04-28 15:53 ` Nick S. Grechukh
2004-04-28 18:45 ` [devel] components (was: sis mirroring script) Michael Shigorin
2004-05-11 15:00 ` [devel] Re: sis mirroring script Nick S. Grechukh
1 sibling, 1 reply; 7+ messages in thread
From: Nick S. Grechukh @ 2004-04-28 15:53 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 806 bytes --]
В сообщении от Среда 28 Апрель 2004 17:01 Michael Shigorin написал(a):
> On Wed, Apr 28, 2004 at 04:37:37PM +0300, Nick S. Grechukh wrote:
> > вот похвастаюсь :-) исходники: две кружки кофе и 20 минут.
>
> Ууу.... rsync(1) видели? ;-)
конечно :-) эти скрипты тоже видел в свое время. но интересней заморочиться и
самому написать. ;-);-)
и потом, хочу иметь компоненты не просто kernel и classic RPMS.server,
RPMS.kde, RPMS.mailserv, и т.п. (сейчас у меня так и есть, вытягивалось оно
путем apt-get install -d bla-bla-bla). страшно не хочется сливать все в одну
папку и натравливать rsync.
вот еще поковырялся, нормальный блэклист прикрутил.
раскидывание по компонентам - скорее всего тоже на sed?.
--
-------------------------
WBR, Nick S. Grechukh
Refractory Trading House
network administrator
[-- Attachment #2: _updatesystem_4 --]
[-- Type: text/plain, Size: 792 bytes --]
sis_site="ftp.altlinux.ru"
sis_url="/pub/distributions/ALTLinux/Sisyphus/i586/RPMS.kernel"
real_url="/pub/distributions/ALTLinux/Sisyphus/files/i586/RPMS"
local_path="/mnt/win_d/sisyph/files.kernel/i586"
today_folder=RPMS.`date +%Y%m%d`
today_path=$local_path/$today_folder
[ -d $local_path/$today_folder ] || mkdir $local_path/$today_folder
lftp -c "open $sis_site; cd $sis_url; ls " | awk '{print $9}' | \
( \
echo open $sis_site; echo cd $real_url;
while read pkg_name; do
path_to=`find $local_path -name "$pkg_name" -printf "%h\n"`;
[[ $path_to ]] || path_to=$today_path;
inblack=`echo $pkg_name | sed --silent -f blacklist-new | tail -n 1`
[[ $inblack = "yes" ]] || [ -e $path_to/$pkg_name ] || (echo lcd $path_to; echo get -c $pkg_name);
done
)
##### | \ lftp
[-- Attachment #3: blacklist-new --]
[-- Type: text/plain, Size: 90 bytes --]
i no
/kernel-source-2.4.21-.*/ c yes
/kernel-source-2.4.23-.*/ c yes
/kernel22-.*/ c yes
^ permalink raw reply [flat|nested] 7+ messages in thread
* [devel] components (was: sis mirroring script)
2004-04-28 15:53 ` Nick S. Grechukh
@ 2004-04-28 18:45 ` Michael Shigorin
2004-04-29 9:52 ` Nick S. Grechukh
0 siblings, 1 reply; 7+ messages in thread
From: Michael Shigorin @ 2004-04-28 18:45 UTC (permalink / raw)
To: devel
On Wed, Apr 28, 2004 at 06:53:49PM +0300, Nick S. Grechukh wrote:
[а]
> и потом, хочу иметь компоненты не просто kernel и classic
> RPMS.server, RPMS.kde, RPMS.mailserv, и т.п. (сейчас у меня
> так и есть, вытягивалось оно путем apt-get install -d
> bla-bla-bla). страшно не хочется сливать все в одну папку и
> натравливать rsync.
Это или дело вкуса (и вечный "форк местного значения"), или нечто
вроде http://platform.progeny.com/componentized/ (которое чем-то
вызывает странные ощущения).
PS: с выделением медиа-пакетов всяких пока все застыло?
Подумывал залить пакетик, но он немного трёхсотметровый...
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] components (was: sis mirroring script)
2004-04-28 18:45 ` [devel] components (was: sis mirroring script) Michael Shigorin
@ 2004-04-29 9:52 ` Nick S. Grechukh
0 siblings, 0 replies; 7+ messages in thread
From: Nick S. Grechukh @ 2004-04-29 9:52 UTC (permalink / raw)
To: devel
В сообщении от Среда 28 Апрель 2004 21:45 Michael Shigorin написал(a):
> On Wed, Apr 28, 2004 at 06:53:49PM +0300, Nick S. Grechukh wrote:
> [а]
>
> > и потом, хочу иметь компоненты не просто kernel и classic
> > RPMS.server, RPMS.kde, RPMS.mailserv, и т.п. (сейчас у меня
> > так и есть, вытягивалось оно путем apt-get install -d
> > bla-bla-bla). страшно не хочется сливать все в одну папку и
> > натравливать rsync.
>
> Это или дело вкуса (и вечный "форк местного значения")
вдохновлен скриптами etersoft'а.
есть смысл делать по крайней мере крупноблочную разбивку:
kde, gnome, games. то что понадобится для сервера - можно унести на двух
болванках.
и "мы не будем ждать милости от природы".
--
-------------------------
WBR, Nick S. Grechukh
Refractory Trading House
network administrator
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [devel] Re: sis mirroring script
2004-04-28 14:01 ` [devel] " Michael Shigorin
2004-04-28 15:53 ` Nick S. Grechukh
@ 2004-05-11 15:00 ` Nick S. Grechukh
2004-05-11 16:35 ` Michael Shigorin
1 sibling, 1 reply; 7+ messages in thread
From: Nick S. Grechukh @ 2004-05-11 15:00 UTC (permalink / raw)
To: devel
В сообщении от Среда 28 Апрель 2004 17:01 Michael Shigorin написал(a):
>rsync(1) видели? ;-)
про rsync-daily:
а почему не использовать rsync -b --backup-dir=/path-to/20040510 ?
тогда daily каталоги - бэкапы файлов _ушедших_ в этот день. но будет сложно
сформировать зеркало на произвольную дату.
я сейчас докручиваю другой вариант, когда в daily каталогах лежат файлы
которые _появились_ в этот день. полный сизиф генерится путем ln:
список_файлов_на_сервере | while read $blabla; do datefirst=`find $pathto
-name "$blabla" |tailn -n 1`; ln $datefirst $pathto/current; done
- получаем в какой день файл возник и линкуем его. неслинкованными остаются
неактуальные(на указанную дату) файлы.
имхо удобней схемы hardlink: без дополнительных движений видно, чем отличаются
сегодняшний и завтрашний. можно даже держать каждый день как отдельную
компоненту.
а зеркало на любую дату сгенерить не проблема если сохранить
список_файлов_на_сервере.
--
-------------------------
WBR, Nick S. Grechukh
Refractory Trading House
network administrator
^ permalink raw reply [flat|nested] 7+ messages in thread
* [devel] Re: sis mirroring script
2004-05-11 15:00 ` [devel] Re: sis mirroring script Nick S. Grechukh
@ 2004-05-11 16:35 ` Michael Shigorin
0 siblings, 0 replies; 7+ messages in thread
From: Michael Shigorin @ 2004-05-11 16:35 UTC (permalink / raw)
To: devel
[-- Attachment #1: Type: text/plain, Size: 911 bytes --]
On Tue, May 11, 2004 at 06:00:04PM +0300, Nick S. Grechukh wrote:
> >rsync(1) видели? ;-)
> про rsync-daily: а почему не использовать
> rsync -b --backup-dir=/path-to/20040510 ?
> тогда daily каталоги - бэкапы файлов _ушедших_ в этот день. но
> будет сложно сформировать зеркало на произвольную дату.
...в то время как мне нужно именно оно. См. тж.
http://www.linux-os.ru/Members/gvy/sandman-livecd-mini-howto/
(про .local и [^2]*)
> я сейчас докручиваю другой вариант, когда в daily каталогах
> лежат файлы которые _появились_ в этот день. полный сизиф
> генерится путем ln:
"Скрипты всякие нужны, скрипты всякие важны" :-)
Давайте завернем их как-нибудь?
2 ldv: или в sisyphus?
> а зеркало на любую дату сгенерить не проблема если сохранить
> список_файлов_на_сервере.
If.
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-05-11 16:35 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-04-28 13:37 [devel] sis mirroring script Nick S. Grechukh
2004-04-28 14:01 ` [devel] " Michael Shigorin
2004-04-28 15:53 ` Nick S. Grechukh
2004-04-28 18:45 ` [devel] components (was: sis mirroring script) Michael Shigorin
2004-04-29 9:52 ` Nick S. Grechukh
2004-05-11 15:00 ` [devel] Re: sis mirroring script Nick S. Grechukh
2004-05-11 16:35 ` Michael Shigorin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git