#Записки о Unix/Linux/BSD/Solaris

Скрипт обновления ПО FreeBSD
Автор Охальников Олег   
03:11:2010 г.
Простенький скрипт последовательно выполняющий следующие операции: 

1)  чистка портов, 
2) обновление дерева портов,
3) обновление INDEX.db,
4) обновление базы данных пакетов,
5) поиск пакетов требующих обновления,
6) само обновление с помощью утилиты portupgrade (нужно установить, если её нет в системе).

#!/bin/sh

#########################################
# Created: Ohalnikov Oleg #
# Date: 2010-06-03 #
#########################################

portsclean -CDD;
csup -g -L 2 /etc/ports-supfile;
portsdb -Uu;
pkgdb -F;
pkg_version -v |grep "need";
echo ""
echo "Обновить -> (y/n)"
read a
          if [ $a = "y" ] || [ $a = "Y" ]; then
                  echo "Обновляемся..."
                  portupgrade -arR
          else if [ $a = "n" ] || [ $a = "N" ]; then
                  echo "Выход..."
                  exit
           fi
    fi

 
Переписал скрипт на Perl. Создаем файл ports.pl, делаем его исполняемым. Содержание скрипта:

#!/usr/bin/perl
#----------------------------------------
# Created: Ohalnikov Oleg
# Date: 2010-11-25
# Support: http://unixa.ru
#----------------------------------------
system "(portsclean -CDD; csup -g -L 2 /usr/local/etc/ports-supfile; pkgdb -F; pkg_version -v |grep \"need\")";
print "Обновляемся?\n";
print "Да > \"y\", Нет > \"anykey\"\n";
$x=<STDIN>;
chomp ($x);
if ($x eq "y") {
system "(portupgrade -arR)";
} else {
print "Выход...\n";
  }

Выполняем

# ./ports.pl


Охальников Олег aka H@wk!  

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code


Просмотров: 8445

  Коментарии (2)
RSS комментарии
 1 Написал(а) H@wk!, в 21:48 16.02.2011
C # pkg_version -vIL= соглашусь, быстро ищет, но не то что надо: 
--- 
mc-4.7.5 > succeeds index (index has 4.7.4_3) 
multitail-5.2.7 > succeeds index (index has 5.2.6) 
mysql-client-5.1.55 > succeeds index (index has 5.1.54_1) 
mysql-server-5.1.55 > succeeds index (index has 5.1.54_1) 
phpMyAdmin-3.3.9.1 > succeeds index (index has 3.3.9) 
portaudit-0.5.17 > succeeds index (index has 0.5.15) 
--- 
Поиск с помощью pkg_version -v | grep "need" 
--- 
bash-completion-1.2_2,1 < needs updating (port has 1.3,1) 
libecap-0.0.3 < needs updating (port has 0.1.0) 
phpMyAdmin-3.3.9.1 < needs updating (port has 3.3.9.2) 
squid-3.1.10 < needs updating (port has 3.1.11) 
---  
По первой команде, надо еще индекс обновлять, иначе результат будет вообще далекий от истины. Генерирование индекса очень длительный процесс. 
Применительно к данному примеру, можно использовать команду: # portversion -vFl '<'  
пошустрее будет, но не намного. 
На счет обновлений, portupgrade - не разу не подводила. Скрипт не подразумевает, что нужно делать только так :), поэтому можно переделывать как угодно и как удобно. По поводу скорости работы, опыт показывает, что лучше медленно, но верно.
 2 Написал(а) Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , в 01:02 16.02.2011
зачем использовать portupgrade? уж лучше portmaster - не такой тяжелый. 
так же вместо pkg_version -v я бы посоветовал читать только заголовки: pkg_version -vIL= так быстрее.
 
« find для хостинга или выставляем права на папки 755, права на файлы 644   RCS - Revision Control System »

#COMMENT

Блокируем Ylmf-pc на Exim, Bru...
Благодарю за кучу уцелевших нервов:) постоянно приходилось б...
30/05/17 00:02 More...
By Mus

Установка даты и времени в кон...
Спасибо
12/05/17 17:49 More...
By dushka

Раскладка в rdesktop
Огромное спасибо!
28/04/17 14:01 More...
By Виктор

Аутентификация средствами Apac...
подскажите как писать пороль цифры ?пж! :sigh
28/03/17 13:06 More...
By Лиза

Logwatch - мониторинг журналов...
Отлично, очень не хватало. Автору большое спасибо, пиши еще.
25/01/17 02:44 More...
By Gregg

#/tmp

Каким дистрибутивом Вы пользуетесь?

Сейчас на сайте находятся:
2 гостей