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 01:00 | Komunita

    Z upstreamu GNOME Mutter byl zcela odstraněn backend X11. GNOME 50 tedy poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.

    Ladislav Hagara | Komentářů: 0
    dnes 00:00 | IT novinky

    Byl publikován plán na odstranění XSLT z webových prohlížečů Chrome a Chromium. S odstraněním XSLT souhlasí také vývojáři Firefoxu a WebKit. Důvodem jsou bezpečnostní rizika a klesající využití v moderním webovém vývoji.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.3.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 05:55 | IT novinky

    Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.

    Ladislav Hagara | Komentářů: 0
    4.11. 11:33 | IT novinky

    Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.

    Ladislav Hagara | Komentářů: 22
    4.11. 05:44 | Komunita

    Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.

    Ladislav Hagara | Komentářů: 0
    4.11. 04:33 | Komunita

    Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co

    … více »
    SUSEMAS | Komentářů: 2
    4.11. 04:22 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).

    Ladislav Hagara | Komentářů: 0
    4.11. 04:11 | Zajímavý článek

    Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.

    Ladislav Hagara | Komentářů: 11
    3.11. 22:55 | IT novinky

    Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno

    … více »
    Ladislav Hagara | Komentářů: 8
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (18%)
     (17%)
     (22%)
     (15%)
     (21%)
     (16%)
     (16%)
    Celkem 316 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    Rozcestník

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

    28.3.2007 21:21 | Přečteno: 1479× | 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.