|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alecsey Lanetskey 2:5030/1098 20 Oct 2001 01:23:22 To : All Subject : INN: rebuild `active' after unclean shutdown -------------------------------------------------------------------------------- Вот, налабал нечто, собирающее новый dbpath/active на основе информации из старого active и содержимого спула. Hадоело собирать рукими (у меня подписка небольшая, с десяток конференций). Возможно, до меня это сделали не через <>, но поиском готовых решений я себя и не утруждал. Разбитую бэкслэшем строчку надо склеить. По скорости работает просто ужасно, но и электричество у меня дергают не каждый день :) ===>8=== executable shell script: /var/news/db/rebuild-active - -------- #!/bin/sh ACTIVE="/var/news/db/active" NEWACTIVE="/var/news/db/active.rebuild" SPOOL="/var/news/spool/articles" echo -n > $NEWACTIVE GROUPS=`cut -d " " -f 1 $ACTIVE` for NEWSGROUP in $GROUPS; do NEWSGROUPPATH=`echo $NEWSGROUP| sed 's/\./\//g'` NEWSGROUPLINE=`grep $NEWSGROUP $ACTIVE` LASTARTICLE=`echo $NEWSGROUPLINE| cut -d " " -f 2` FIRSTARTICLE=`echo $NEWSGROUPLINE| cut -d " " -f 3` STATE=`echo $NEWSGROUPLINE| cut -d " " -f 4` ARTICLES=`ls $SPOOL/$NEWSGROUPPATH|grep -v '[^[:digit:]]'| \ awk -v first=$FIRSTARTICLE -v last=$LASTARTICLE \ '{if($1>last){last=$1}if($1<first){first=$1}}\ END{printf("%010s %010s",last,first)}'` echo "$NEWSGROUP $ARTICLES $STATE" >> $NEWACTIVE done chown news:news $NEWACTIVE chmod 664 $NEWACTIVE ===8<=== -- С уважением, Алексей Ланецкий. --- tin/1.5.7-20001104 ("Paradise Regained") (UNIX) (Linux/2.2.17 (i586)) * Origin: ATLAS station / 23:00--7:30 / +7-812-529-8173 (2:5030/1098.0) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6077395a80da7.html, оценка из 5, голосов 10
|