abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 06:00 | IT novinky

    Dle plánu dnes ve 13:00 proběhne veřejný test eDokladů. Jeho cílem je ověřit připravenost aplikace a související infrastruktury na vysokou souběžnou zátěž před podzimními komunálními volbami.

    Ladislav Hagara | Komentářů: 1
    dnes 04:11 | Nová verze

    Byla vydána nová verze 3.47 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.13 souvisejícího programovacího jazyka Dart (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    dnes 04:00 | Nová verze

    Byla vydána nová verze 26.1 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Bian-May. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.

    Ladislav Hagara | Komentářů: 0
    včera 19:00 | IT novinky

    Na akci Made by Google 2026 (YouTube) byla oficiálně představena jedenáctá generace telefonů Pixel s novým čipem Google Tensor G6 a hodinky Pixel Watch 5.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) se spolu s partnery z dalších zemí připojil ke společnému upozornění (Joint Cybersecurity Advisory) týkajícímu se probíhající kybernetické kampaně skupiny LAUNDRY BEAR zaměřené na uživatele e-mailové platformy Zimbra Collaboration Suite (ZCS) nejméně od července 2025. NÚKIB doporučuje organizacím využívajícím Zimbra Collaboration Suite neprodleně ověřit, zda

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 14:22 | Nová verze

    Intel vydal 42 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20260811 mikrokódů pro své procesory.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Zajímavý článek

    Sny o designu GNOME Shellu, článek s náhledy a videi, představuje dlouhodobou vizi týmu GNOME pro vylepšení uživatelského rozhraní GNOME Shellu. Zatímco nedávné verze přinášely spíše drobné úpravy, designéři nyní plánují zásadnější změny.

    Ladislav Hagara | Komentářů: 15
    včera 05:22 | Nová verze

    Byla vydána nová verze 10.5 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Nově vyžaduje podporu ECC (Elliptic Curve Cryptography) v libcrypto, včetně křivky NISTP521.

    Ladislav Hagara | Komentářů: 0
    včera 05:11 | Nová verze

    Byla vydána nová verze 10.6 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. S novými obrazy pro Orange Pi 4 Pro, Orange Pi Zero 3W a Odroid M1/M1S/M2. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    11.8. 14:44 | IT novinky

    Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů

    … více »
    Ladislav Hagara | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2376 hlasů
     Komentářů: 31, poslední dnes 00:27
    Rozcestník

    Užitečné skripty 5: zálohujeme SVN repositář

    28.3.2007 21:21 | Přečteno: 1644× | Linux

    V dnešním díle zvedneme kvalitu seriálu zpátky na rozumnou úroveň a ukážeme si skript na zálohování SVN repositáře. Pokud si svoje textové výtvory skladujete v SVN, jistě oceňujete to, že si můžete zjistit všechny verze a změny, které jste kdy napsali. Je však potřeba myslet na katastrofickou situaci, když se nějak pokazí repositář. Potom se hodí záloha repositáře. Pokud máte repositářů víc, jistě se hodí skript, který celou akci zautomatizuje.

    Abstrakt

    Své texty (opravdové texty, skripty, konfiguráky apod.) si ukládám do SVN. Používám více repositářů, protože věci, které spolu opravdu nesouvisejí, raději dávám zvlášť. Abyste věděli předem, co od skriptu očekávat, tady je stručný přehled:

    Samotný skript

    Základem skriptu je kód zveřejněný v jedné internetové diskusi, viz [1]. Skript je trochu delší.
    Soubor backup.sh
    1. #!/bin/sh
    2. #Skript na zalohovani SVN
    3. #Use: $0 <what to backup>
    4. #based on http://snippets.dzone.com/posts/show/2635
    5. call_exit(){
    6. echo -n "Error code $1 - "
    7. case "$1" in
    8. 1)
    9. echo "Cannot find place for backup, exitting"
    10. ;;
    11. 2)
    12. echo "Backup dir is not present, exitting"
    13. ;;
    14. 3)
    15. echo "Backup dir is not writable, exitting"
    16. ;;
    17. esac
    18. exit $1
    19. }
    20. #Setup
    21. infoDir=${HOME}/.backup #directory, where information about stored revisions is kept
    22. svnRepository=${HOME}/SVN #repository location
    23. externalBackupMountPoint1='/mnt/mp3' #first mountpoint to try
    24. externalBackupMountPoint2='/mnt/local/mp3' #second mountpoint to try
    25. externalBackupDir='backup' #path in the mounted disc (asume the disc can be mounted on two locations)
    26. defaultBackup='phd' #what to backup, if nothing is given on commandline
    27. #End of setup
    28. #Find a location for the backup
    29. if [ `mount | grep $externalBackupMountPoint1 | wc -l` -eq 1 ]
    30. then
    31. backupDir="$externalBackupMountPoint1/$externalBackupDir"
    32. elif [ `mount | grep $externalBackupMountPoint2 | wc -l` -eq 1 ]
    33. then
    34. backupDir="$externalBackupMountPoint2/$externalBackupDir"
    35. else
    36. call_exit 1
    37. fi
    38. [ -d $backupDir ] || call_exit 2
    39. [ -w $backupDir ] || call_exit 3
    40. echo =============================================
    41. echo ============ Backup utility =================
    42. echo =============================================
    43. echo
    44. echo Using $backupDir for the backup
    45. timeStamp=`date +%F-%H-%M-%S`
    46. #function to dump SVN repository
    47. dumpDir(){
    48. dir=$1 #what repository to backup
    49. dirBaseName=`basename $dir` #basename of the repository to backup
    50. echo Processing $dir
    51. youngest=`svnlook youngest $dir` #last (youngest) revision in the repository
    52. if [ -r $infoDir/$dirBaseName ]; then #if we have information about the last backupped revision
    53. latest=`cat $infoDir/$dirBaseName` #last revision
    54. if [ $latest -lt $youngest ]; then #if the last backuped revision is older than the youngest
    55. cil=${backupDir}/`basename $dir`_$latest_$youngest_$timeStamp.gz #file name where to backup
    56. echo Running incremental backup from revision $latest to revision $youngest
    57. echo Target is $cil
    58. svnadmin dump $dir --incremental -r $latest:$youngest | gzip > $cil # the command itself
    59. cp $infoDir/$dirBaseName $infoDir/$dirBaseName.old #backup the old setting
    60. echo $youngest > $infoDir/$dirBaseName #write the information about the backup
    61. else #no change since the last backup
    62. echo No need to backup
    63. fi
    64. else #if we have no info about last backup, run full backup
    65. cil=${backupDir}/`basename $dir`_0_$youngest_$timeStamp.gz
    66. echo Runnig full backup up to revision $youngest
    67. echo Target is $cil
    68. svnadmin dump $dir | gzip > $cil #the command itself
    69. [ -d $infoDir ] || mkdir $infoDir
    70. echo $youngest > $infoDir/$dirBaseName #write the information about the backup
    71. fi
    72. echo Done
    73. }
    74. #if nothing is given on commandline, $defaultBackup is backed up
    75. what=$1
    76. if [ "x$1" = "x" ]
    77. then
    78. what=$defaultBackup
    79. fi
    80. case "$what" in
    81. all)
    82. for dir in $svnRepository/*
    83. do
    84. dumpDir $dir
    85. done
    86. ;;
    87. *)
    88. dir=${svnRepository}/${what}
    89. if [ -d $dir ]
    90. then
    91. dumpDir $dir
    92. else
    93. echo $dir is not a valid SVN repository
    94. exit 2
    95. fi
    96. ;;
    97. esac
    98. echo All Done

    Lehké vysvětlení:

    Obnovení ze zálohy

    Pro nedostatek času toto téma vynechávám, můžete se vyřádit v diskusi.

    Odkazy

    1. http://snippets.dzone.com/posts/show/2635

    Místa k vylepšení, otázky

    1. Zlepšit reakci na vzniklé chyby, například, když dump repositáře nefunguje, jak má (řádky 62 a 72)
           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    David Watzke avatar 28.3.2007 21:33 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Užitečné skripty 5: zálohujeme SVN repositář
    what=$1
    
    if [ "x$1" = "x" ]
    then
    	what=$defaultBackup
    fi
    lze nahradit za
    what=${1:-$defaultBackup}
    P.S.: s/exitting/exiting/g
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.