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 13:33 | Komunita

    Software Freedom Conservancy v novém dokumentu shrnuje doporučení, jak přistupovat ke generativní AI založené na LLM při přispívání do svobodného a open-source softwaru. Mimo jiné vyzývá k obezřetnosti, transparentnosti a revizi generovaného kódu člověkem.

    |🇵🇸 | Komentářů: 0
    dnes 13:22 | Nová verze

    Byla vydána nová verze 5.6.0 programu na úpravu digitálních fotografií darktable (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 20:11 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. V Týdnu v GNOME je zmíněn flatpak balíček pro GIMP 0.54.1 z roku 1996. Jedná se o poslední verzi GIMPu postavenou nad toolkitem Motif.

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

    Home Assistant Operating System, tj. linuxová distribuce optimalizována pro hostování Home Assistanta a jeho aplikací, byl vydán v nové major verzi 18.0.

    Ladislav Hagara | Komentářů: 0
    včera 18:11 | Komunita

    Po šestiletém úsilí byla z jádra Linux odstraněna funkce strncpy(). Všechna předchozí volání této funkce byla převedena na bezpečnější alternativy.

    Ladislav Hagara | Komentářů: 1
    včera 17:22 | Nová verze

    Byla vydána nová verze 261 správce systému a služeb systemd (Wikipedie, GitHub). Z novinek lze vypíchnout nový subsystém IMDS (Cloud "Instance Metadata Service"), nový příkaz storagectl nebo novou komponentu systemd-sysinstall.

    Ladislav Hagara | Komentářů: 3
    včera 12:00 | Nová verze

    Vývojové prostředí Qt Creator bylo vydáno ve verzi 20 (seznam změn). Novinky zahrnují hlavně rozšíření pro integraci LLM agentů nebo minimalistický editační režim uživatelského rozhraní („zen mode“).

    |🇵🇸 | Komentářů: 0
    19.6. 10:22 | Humor

    Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].

    Ladislav Hagara | Komentářů: 0
    19.6. 09:55 | Nová verze

    Byla vydána nová verze 4.7 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 3
    18.6. 13:33 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1952 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

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

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