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í
×
    včera 17:55 | Nová verze

    Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Upozornění

    Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.

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

    Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.

    VSladek | Komentářů: 1
    včera 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 1
    13.1. 21:33 | Nová verze

    Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.

    Ladislav Hagara | Komentářů: 5
    13.1. 16:11 | Nová verze

    Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    13.1. 13:22 | Humor

    Asociace repair.org udělila anticeny těm nejhorším produktům představeným na veletrhu CES 2026. Oceněnými jsou například šmírující kamery Amazon Ring AI, chytrý běžecký pás od společnosti Merach, která otevřeně přiznává, že nedokáže zabezpečit osobní data uživatelů, případně jednorázové lízátko, které rozvibrovává čelisti uživatele a tak přehrává hudbu. Absolutním vítězem je lednička od Samsungu, která zobrazuje reklamy a kterou lze otevřít pouze hlasovým příkazem přes cloudovou službu.

    NUKE GAZA! 🎆 | Komentářů: 11
    13.1. 12:00 | IT novinky

    Íránští protirežimní aktivisté si všímají 30% až 80% ztráty packetů při komunikaci se satelity služby Starlink. Mohlo by se jednat o vedlejší důsledek rušení GPS, kterou pozemní přijímače Starlinku používají k výpočtu polohy satelitů a kterou se režim rovněž snaží blokovat, podle bezpečnostního experta a iranisty Amira Rashidiho je ale pravděpodobnější příčinou terestrické rušení přímo satelitní komunikace Starlinku podobnou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 13
    13.1. 00:55 | IT novinky

    Evropská komise (EK) zvažuje, že zařadí komunikační službu WhatsApp americké společnosti Meta mezi velké internetové platformy, které podléhají přísnější regulaci podle unijního nařízení o digitálních službách (DSA). Firmy s více než 45 miliony uživatelů jsou podle DSA považovány za velmi velké on-line platformy (Very Large Online Platforms; VLOP) a podléhají přísnějším pravidlům EU pro internetový obsah. Pravidla po

    … více »
    Ladislav Hagara | Komentářů: 22
    13.1. 00:44 | IT novinky

    Tržní hodnota technologické společnosti Alphabet poprvé v historii přesáhla čtyři biliony dolarů (83 bilionů Kč). Stalo se tak poté, co Apple oznámil, že bude na poli umělé inteligence (AI) spolupracovat s dceřinou firmou Alphabetu, společností Google.

    Ladislav Hagara | Komentářů: 5
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (8%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (45%)
    Celkem 431 hlasů
     Komentářů: 12, poslední včera 21:12
    Rozcestník

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

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