простенький скрипт по обновлению iso-образов debian , ветки testing через jigdo-lite
файл i.sh
Код: Выделить всё
#! /bin/sh
if [ $(find . -type f -mtime +7 -name "*.jigdo") ] || [ ! $(find . -type f -name "*.jigdo") ]
then
rm *.jigdo *.template *.unpacked *.tmp jigdo-file-cache.db
rm -R *.tmpdir
wget -c -i i
fi
for j in i386 amd64 i386-amd64-source kfreebsd-i386 kfreebsd-amd64
do
for i in 1 2 3 4 5 6 7 8
do
if [ -f ./debian-testing-$j-DVD-$i.jigdo ]
then
mv debian-testing-$j-DVD-$i.iso debian-testing-$j-DVD-$i.iso.old
umount /media/cdrom/
mount -o loop debian-testing-$j-DVD-$i.iso.old /media/cdrom/
jigdo-lite --noask --scan /media/cdrom/ ./debian-testing-$j-DVD-$i.jigdo
if [ -f debian-testing-$j-DVD-$i.iso ]
then
rm debian-testing-$j-DVD-$i.iso.old debian-testing-$j-DVD-$i.jigdo \
debian-testing-$j-DVD-$i.template jigdo-file-cache.db
fi
fi
done
done
mplayer ./pip.mp3
к нему прилагается файл i
Код: Выделить всё
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-1.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-2.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-3.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-4.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-5.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-6.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-7.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-8.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-1.template
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-2.template
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-3.template
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-4.template
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-5.template
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-6.template
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-7.template
http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-dvd/debian-testing-amd64-DVD-8.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-1.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-2.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-3.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-4.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-5.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-6.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-7.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-8.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-1.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-2.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-3.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-4.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-5.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-6.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-7.template
http://cdimage.debian.org/cdimage/weekly-builds/i386/jigdo-dvd/debian-testing-i386-DVD-8.template
http://cdimage.debian.org/cdimage/weekly-builds/multi-arch/jigdo-dvd/debian-testing-i386-amd64-source-DVD-1.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/multi-arch/jigdo-dvd/debian-testing-i386-amd64-source-DVD-1.template
http://cdimage.debian.org/cdimage/weekly-builds/kfreebsd-i386/jigdo-dvd/debian-testing-kfreebsd-i386-DVD-1.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/kfreebsd-i386/jigdo-dvd/debian-testing-kfreebsd-i386-DVD-1.template
http://cdimage.debian.org/cdimage/weekly-builds/kfreebsd-amd64/jigdo-dvd/debian-testing-kfreebsd-amd64-DVD-1.jigdo
http://cdimage.debian.org/cdimage/weekly-builds/kfreebsd-amd64/jigdo-dvd/debian-testing-kfreebsd-amd64-DVD-1.template
кладем скрипт i.sh , файл с закачками i и музыкальный файл pip.mp3 в каталог с iso-образами (думаю можно и в пустой , jigdo перекачает необходимые пакеты и создаст iso даже если нет ничего для сканирования)
запускать: sudo ./i.sh или от пользователя которому разрешено монтировать диски
как он работает:
в начале идет проверка - есть ли в каталоге где лежит скрипт файлы *.jigdo время модификации старше 7 дней и есть ли вообще файлы *.jigdo
если да то удаляем все файлы созданные программой jigdo-lite и скачиваем необходимые файлы указанные в файле i
далее пробегаем по двум циклам - первый платформа , второй номер диска
но в в последнем цикле проверка есть к создаваемому iso-образу jigdo файл , если нет пропускам
если да то переименовываем файл iso на iso.old (сделано для того чтобы не было конфликта со свежесобранным iso-образом)
на всякий случай размонтируем cdrom
монтируем iso.old
запускаем jigdo-lite в "тихом режиме"
далее опять идет проверка - если программа jigdo все сделала правильно то она должна собрать свежий файл iso , если он есть в каталоге то удаляем старый iso.old и др файлы уже нам не нужные
так пробегаем по каждой платформе и по каждому диску
почему так а не иначе:
почему фигурирует в проверке 7 дней , обновления weekly-builds , т.е. каждый Пн
сначала думал сделать проверку по md5 , скачиваемых с тоже сайта , но часто происходит что нужно выключить ночью или днем компьютер , и заново проходить проверку md5 уже свежих iso-образов лишняя нагрузка на hdd\proc , здесь же просто реализована проверка если нет файла *.jigdo значит диск обновился
также можно управлять обновлениями iso-образов закомментировав те или иные строчки в файле i
не стал убирать ошибки в /dev/null при удалении несуществующих файлов
также возможно в начале скрипта добавить проверку если есть iso-образы позднее 7 дней (предполагаем что прошла неделя) то дальше идет обновление если нет то просто break из скрипта , но если скрипт выполняется по крону нет смысла в данной проверке
возможно чтото упустил из каких то нештатных ситуаций , оставляйте свои комментарии