Aktualizační skript pro MDV2006

Princip: Skript aktualizuje systém Mandriva 2006, přičemž stažené aktualizační balíčky skladuje v dalším lokálním zdroji. Dále poskytuje informace o časech provedenyých aktualizací a nabízí i bezobslužné spouštění vhodné do cronu.

Přímo zde vidíte náhled scriptu a ještě jeho kopie ke stažení v gzipu.

 


    1 #!/bin/bash
    2 #
    3 # Description: Aktualizuje system a nakopiruje balicky do zalohy.
    4 # Author: Petr (DotaZ) Jakubec (c) 2004,2005,2006
    5 # Version: 0.1.08 for public domain
    6 # Date: 2004-03-06
    7 #
    8 # UPDATE:
    9 #  2005-01-11 kompletni prepsani (mel by ted byt malinko pritulnejsi a chytrejsi).
   10 #  2005-01-30 drobne graficke upravy a predrazeni updatedir i na zacatek.
   11 #  2005-05-16 Odted se pracuje s updatedir jen na zacatku, na konci to nema smysl.
   12 #             Prechod na stejny skript na vsech stanicich.
   13 #  2005-11-27 Drobne updyve v promennych a zmena vypisu.
   14 #  2006-02-25 Zmirneni zateze pro sys.zdroje (nice -19 xxx)
   15 #  2006-03-01 pridan parametr --last (vypise datumy aktualizaci)
   16 #             pridan parametr --auto (pro plne automatickou aktualizaci)
   17 #  2006-03-05 pridan parametr --help (-h) (napoveda)
   18 #  2006-08-23 upraven timestamp. ty s ":" se nedaji vypalovat!! (ted %Y%m%d-%H%M%S)
   19 #	      a zmenil jsem format (pridana promenna MACHINE)
   20 # POZN:
   21 #   upravene vydani pro public domain.
   22 # zdroje definovane v promennych uz musi existovat!
   23 # tj.:
   24 # urpmi.addmedia --update update_source ftp://mandrivauser.cz/Mandrakelinux/official/updates/2006.0/main_updates with /media_info/synthesis.hdlist.cz
   25 # urpmi.addmedia --update updates_dir $SKLAD_UPDATE with /media_info/synthesis.hdlist.cz
   26 
   27 
   28 SKLAD_UPDATE="/var/backup/update"
   29 LOCALUPDATE="update_dir"
   30 REMOTEUPDATE="update_source"
   31 MACHINE="machine1"
   32 USER="501"
   33 GROUP="users"
   34 NICE="nice -19"
   35 
   36 ####################################################################################
   37 
   38 if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
   39 	echo
   40 	echo " usage: $0 [--last|--auto|--help]"
   41 	echo
   42 	echo "   --last  pouze vypise datumy aktualizaci"
   43 	echo "   --auto  provede aktualizaci bez dotazu"
   44 	echo "   --help  prave vidis :-)"
   45 	exit 0
   46 fi
   47 
   48 /usr/bin/clear
   49 
   50 if [ "$1" == "--last" ] && [ -d $SKLAD_UPDATE/media_info/ ]; then
   51     ls $SKLAD_UPDATE/media_info/ |grep 20
   52     exit 0
   53 fi
   54 
   55 echo -en "\033[097m Test zda adresare pro zdroj $LOCALUPDATE existuji (pripadne se vytvori) \033[0m"
   56 	if [ ! -d $SKLAD_UPDATE ]; then /bin/mkdir $SKLAD_UPDATE/ &>/dev/null; fi
   57 	if [ ! -d $SKLAD_UPDATE/media_info/ ]; then /bin/mkdir $SKLAD_UPDATE/media_info/ &>/dev/null; fi
   58 echo -e "\033[092m [ OK ] \033[0m"
   59 
   60 echo -e "\033[097m Generuji hdlist a presunu jej do adresare \033[0m"
   61 echo -en "\033[097m $SKLAD_UPDATE/media_info: \033[0m"
   62 	cd $SKLAD_UPDATE/ && $NICE /usr/bin/genhdlist . #vygeneruje hdlist a presune je
   63 	$NICE /bin/mv --force $SKLAD_UPDATE/hdlist.cz $SKLAD_UPDATE/media_info/
   64 	$NICE /bin/mv --force $SKLAD_UPDATE/synthesis.hdlist.cz $SKLAD_UPDATE/media_info/
   65 	$NICE /bin/mv --force $SKLAD_UPDATE/list $SKLAD_UPDATE/media_info/
   66 echo -e "\033[092m [ OK ] \033[0m"
   67 
   68 #zmeni vlatnika/skupinu, prava adresaru a prava souboru
   69 echo -en "\033[097m Menim prava v $LOCALUPDATE... \033[0m"
   70 	$NICE /bin/find $SKLAD_UPDATE -print0 | xargs --null /bin/chown $USER:$GROUP; #zmeni vlatnika/skupinu
   71 	$NICE /bin/find $SKLAD_UPDATE -type d -print0 | xargs --null /bin/chmod 755; # zmeni prava adresaru
   72 	$NICE /bin/find $SKLAD_UPDATE -type f -print0 | xargs --null /bin/chmod 644; # zmeni prava souboru
   73 echo -e "\033[092m [ OK ] \033[0m"
   74 
   75 #update zdroje $LOCALUPDATE
   76 echo -en "\033[097m Update zdroje $LOCALUPDATE... \033[0m"
   77 # od v2006.0 to porat vypisovalo ze nemuze kopirovat pubkey! -> /dev/null
   78 	$NICE /usr/sbin/urpmi.update -q $LOCALUPDATE  &>/dev/null &&
   79 echo -e "\033[092m [ OK ] \033[0m"
   80 
   81 #update zdroje $REMOTEUPDATE
   82 echo -e "\033[097m Update zdroje $REMOTEUPDATE... \033[0m"
   83 	$NICE /usr/sbin/urpmi.update -q $REMOTEUPDATE &&
   84 echo -e "\033[092m [ OK ] \033[0m"
   85 
   86 #proved update
   87 echo -en "\033[097m PROVADIM UPDATE: \033[0m"
   88   if [ "$1" == "--auto" ]; then
   89      # automaticky update
   90      $NICE /usr/sbin/urpmi --update --noclean --auto-select --auto --no-uninstall #--limit-rate 524288
   91   else
   92      $NICE /usr/sbin/urpmi --update --noclean --auto-select
   93   fi
   94 echo -e "\033[092m UPDATE   [ OK ] \033[0m"
   95 
   96 #Presun rpms do $LOCALUPDATE
   97 echo -en "\033[097m Presun rpms do $LOCALUPDATE \033[0m"
   98 	$NICE /bin/mv /var/cache/urpmi/rpms/* $SKLAD_UPDATE/ &>/dev/null &&
   99 echo -e "\033[092m [ OK ] \033[0m" || echo -e "\033[092m NIC TU NENI \033[0m"
  100 
  101 #vytvori casovou znacku v $SKLAD_UPDATE/media_info/
  102 echo -en "\033[097m Timestamp v $LOCALUPDATE \033[0m"
  103 	/bin/touch $SKLAD_UPDATE/media_info/`date +%Y%m%d-%H%M%S`-$MACHINE &&
  104 echo -e "\033[092m [ OK ] \033[0m"
  105 
  106 echo
  107 echo -e "\033[092m AKTUALIZACE (ZDA SE) PROBEHLA V PORADKU :) \033[0m"
Petr Jakubec © 2006