Keresés

Új hozzászólás Aktív témák

  • Keem1

    veterán

    válasz bambano #2606 üzenetére

    Így jó :C

    exclist=$(printf -- "--exclude=%s\n" "${excludes[@]}")

    Ez most remekül működik, igaz, azonnal bukom az egészet, ha bekerül egy space-t tartalmazó path, de egyelőre ilyenem nincs.

    Köszönöm srácok a segítséget és a türelmet :R

  • Keem1

    veterán

    válasz bambano #2604 üzenetére

    Sajnos úgy se megy :U Viszont így kicsit necces, ha később kerül be olyan folder, aminek a nevében space van.

    juliska@pistacio:~ $ bash -x ./backup.sh
    ++ hostname
    + devicename=pistacio
    + path_backup=/media/hdd/backup
    + file_archive=pistacio.local.tar.gz
    + path_archive=/media/hdd/backup/pistacio.local.tar.gz
    + [[ ! -d /media/hdd/backup ]]
    + [[ -f /media/hdd/backup/pistacio.local.tar.gz ]]
    + rm -f /media/hdd/backup/pistacio.local.tar.gz
    + [[ -f '' ]]
    + directories=("/home/juliska/")
    + declare -a directories
    + excludes=("home/juliska/tmp")
    + declare -a excludes
    ++ printf '%s\n' /home/juliska/
    + dirlist=/home/juliska/
    ++ printf --exclude=%s home/juliska/tmp
    ./backup.sh: 32. sor: printf: --: érvénytelen kapcsoló
    printf: használat: printf [-v változó] formátum [argumentumok]
    + exclist=
    + tar -cvf /media/hdd/backup/pistacio.local.tar.gz /home/juliska/
    tar: A kezdő „/” eltávolítása a nevek elejéről
    /home/juliska/
    /home/juliska/.bash_history
    /home/juliska/samsung_860evo_250gb_01.png
    /home/juliska/samsung_860evo_250gb_02.png
    /home/juliska/samsung_860evo_250gb_03.png
    /home/juliska/.bash_logout
    /home/juliska/tmp/
    /home/juliska/tmp/teszt.txt
    /home/juliska/tmp/addon.xml
    /home/juliska/tmp/131927106_711033053173709_564839630427467469_n_711033049840376.jpg
    /home/juliska/tmp/20210117_201722.jpg
    /home/juliska/backup.sh
    /home/juliska/.profile
    /home/juliska/.bashrc
    juliska@pistacio:~ $

  • Keem1

    veterán

    válasz bambano #2600 üzenetére

    ++ hostname
    + devicename=pistacio
    + path_backup=/media/hdd/backup
    + file_archive=pistacio.local.tar.gz
    + path_archive=/media/hdd/backup/pistacio.local.tar.gz
    + [[ ! -d /media/hdd/backup ]]
    + [[ -f /media/hdd/backup/pistacio.local.tar.gz ]]
    + rm -f /media/hdd/backup/pistacio.local.tar.gz
    + [[ -f '' ]]
    + directories=("/home/juliska/")
    + declare -a directories
    + excludes=("home/juliska/tmp")
    + declare -a excludes
    ++ printf '%s\n' /home/juliska/
    + dirlist=/home/juliska/
    ++ printf -- '--exclude='\''%s'\'' ' home/juliska/tmp
    + exclist='--exclude='\''home/juliska/tmp'\'' '
    + tar -cvf /media/hdd/backup/pistacio.local.tar.gz '--exclude='\''home/juliska/tmp'\''' /home/juliska/
    tar: A kezdő „/” eltávolítása a nevek elejéről
    /home/juliska/
    /home/juliska/.bash_history
    /home/juliska/samsung_860evo_250gb_01.png
    /home/juliska/samsung_860evo_250gb_02.png
    /home/juliska/samsung_860evo_250gb_03.png
    /home/juliska/.bash_logout
    /home/juliska/tmp/
    /home/juliska/tmp/teszt.txt
    /home/juliska/tmp/addon.xml
    /home/juliska/tmp/131927106_711033053173709_564839630427467469_n_711033049840376.jpg
    /home/juliska/tmp/20210117_201722.jpg
    /home/juliska/backup.sh
    /home/juliska/.profile
    /home/juliska/.bashrc

  • Keem1

    veterán

    válasz bambano #2598 üzenetére

    Megvan a hiba forrása!

    exclist=$(printf -- "--exclude='%s'\n" "${excludes[@]}")

    A fentivel nem megy, ha kézzel írom be a tar commandba, akkor megy.

    Nem... mégsem az. Ha a scriptből kiechozom a commandot, és kézzel futtatom, akkor működik. Ha a scriptet használom, akkor nem. :U

    Nem megy:
    tar -cvf ${path_archive} ${exclist} ${dirlist}

    Megy:
    echo "tar -cvf ${path_archive} ${exclist} ${dirlist}"
    majd Ctrl+C, konzolba Ctrl+V

  • Keem1

    veterán

    válasz Keem1 #2595 üzenetére

    Hmm... kézzel megy, scriptben nem :U

    juliska@pistacio:~ $ tar --exclude='home/juliska/tmp' -czf /media/hdd/backup/pistacio.tar.gz /home/juliska/*
    tar: A kezdő „/” eltávolítása a nevek elejéről
    tar: A kezdő „/” eltávolítása a közvetlen linkek céljaiból
    juliska@pistacio:~ $ tar -tf /media/hdd/backup/pistacio.tar.gz
    home/juliska/samsung_860evo_250gb_01.png
    home/juliska/samsung_860evo_250gb_02.png
    home/juliska/samsung_860evo_250gb_03.png
    juliska@pistacio:~ $

    És exclude nélkül benne is van a tmp:

    juliska@pistacio:~ $ tar -czf /media/hdd/backup/pistacio.tar.gz /home/juliska/*
    tar: A kezdő „/” eltávolítása a nevek elejéről
    tar: A kezdő „/” eltávolítása a közvetlen linkek céljaiból
    juliska@pistacio:~ $ tar -tf /media/hdd/backup/pistacio.tar.gz
    home/juliska/samsung_860evo_250gb_01.png
    home/juliska/samsung_860evo_250gb_02.png
    home/juliska/samsung_860evo_250gb_03.png
    home/juliska/tmp/
    home/juliska/tmp/teszt.txt
    home/juliska/tmp/addon.xml
    home/juliska/tmp/131927106_711033053173709_564839630427467469_n_711033049840376.jpg
    home/juliska/tmp/20210117_201722.jpg
    juliska@pistacio:~ $

  • Keem1

    veterán

    válasz bambano #2594 üzenetére

    Gyártottam egy juliska usert, abban csináltam egy tmp foldert és beleraktam pár teszt filet.
    Kérhetek erre egy tar commandot, aminek a targetje: /media/hdd/backup/pistacio.tar.gz és a /home/juliska foldert tömöríti és a /home/juliska/tmp foldert excludálja? Kipróbálnám. :R

    Képtelen vagyok elengedni ezt... :DDD

    Kiindulási állapot:

    juliska@pistacio:~/tmp $ ls -al
    összesen 3160
    drwxr-xr-x 2 juliska users 4096 márc 11 15:06 .
    drwxr-xr-x 3 juliska users 4096 márc 11 15:06 ..
    -rwx------ 1 juliska users 102337 jan 1 05:50 131927106_711033053173709_564839630427467469_n_711033049840376.jpg
    -rwx------ 1 juliska users 3112977 jan 17 20:17 20210117_201722.jpg
    -rwx------ 1 juliska users 827 nov 12 2017 addon.xml
    -rwx------ 1 juliska users 10 febr 7 10:41 teszt.txt
    juliska@pistacio:~/tmp $ uname -a
    Linux pistacio 5.10.17+ #1403 Mon Feb 22 11:26:13 GMT 2021 armv6l GNU/Linux
    juliska@pistacio:~/tmp $ tar --version
    tar (GNU tar) 1.30
    Copyright (C) 2017 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Írta: John Gilmore és Jay Fenlason.
    juliska@pistacio:~/tmp $

  • Keem1

    veterán

    válasz bambano #2592 üzenetére

    Hmm...
    Ez abban az esetben is érvényes, ha a tar file abszolút útvonallal van megadva?

    Nálam ez van a script elején:
    devicename=$(hostname)
    path_archive="/media/hdd/backup/${devicename}.tar.gz"

    Direkt pont az ilyenek miatt igyekeztem mindenütt abszolút path-t használni relatív helyett. Ez se segít a helyzetemen?

  • Keem1

    veterán

    válasz bambano #2589 üzenetére

    "ugyanabból a gyökérből csinálod meg a fájlneveket, mint ahonnan a tar-t indítod"
    Ennek az értelmezésével picit gondban vagyok :DDD Eddig azt hittem, Linuxon csak egy gyökér van (a "/").
    Abszolút útvonalat adtam meg, mindkét tömbben. A tömörítendő folderek tömbjében van pl.: "/home/"
    És ehhez kapcsoódik a kivételek tömbjében: "/home/juliska/tmp", hogy ennek a usernek a tmp foldere ne kerüljön bele. Belekerül.

    Most alapvetően leszűkítettem 1-1-re a tömbök tartalmát, ameddig ez nem megy, a többi elemet hiába teszem bele:

    declare -a directories=(
    "/home/juliska"
    )
    declare -a excludes=(
    "/home/juliska/tmp/*"
    )
    dirlist=$(printf "%s\n" "${directories[@]}")
    exclist=$(printf -- "--exclude='%s'\n" "${excludes[@]}")
    tar ${exclist} -czf ${path_archive} ${dirlist}

    Ez eddig a commandom, ami mindenféle hibaüzenet nélkül végrehajtódik, el is készül a tar file, de a tmp folder ugyanúgy ott figyel benne.

  • Keem1

    veterán

    válasz #44001536 #2587 üzenetére

    Segít, köszönöm, ez a megoldás :)

    A command így az lesz, amit várnék, de sajnos nem működik. Nincs hibaüzenet, csak egyszerűen nem veszi figyelembe, hogy excludálni kéne. A parancs lefut, végre is hajtja, de mintha az exclude ott se lenne. :U
    Nem jöttem még rá az okára, pedig próbáltam első paraméterként rögtön a tar után, próbáltam a multikapcsolók után és a célfájl után is. Mindegyik esetben végrehajtódik, szépen el is készül a kb. 10 GB-os tgz fájl, amiben benne van többek között az a /home/username/tmp folder is, ami az exclude paraméterben meg van adva.

    Még keresem az okát, de egyelőre nem jöttem rá. A helyzetet az nehezíti, hogy mivel nincs hibaüzenet, fogalmam sincs, mi a problémája.

  • Keem1

    veterán

    Helló emberek. Sajnos rossz topikban kezdtem, de ezt a kérdést tettem fel.
    Valaki esetleg tudna segíteni?
    Köszönöm! :R

Új hozzászólás Aktív témák