ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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