Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: iRonix 06 Srpna 2015, 16:53:16
-
Ahoj,
Řeším jednu věc, napsal jsem si skript do cronu na zálohování každou hodinu jedné složky.
/bin/mkdir $bck_dst/$dir/$time
/bin/cp -R /root/slozka $bck_dst/$dir/$time
Scriptem si na NASce vytvořím složku podle aktuálního data a času, pak každou hodinu se vytvoří složka s časem a do ní se nahraje vše co je v /root/složka, rád by jsem tuto "složku" s časem hodil do zipu.
Použil jsem | zip > folder.zip a neprošlo to.
Mohl prosím někdo poradit.
Když bude potřeba, tak mohu zaslat celý script.
Děkuji moc.
-
Vyskusaj
zip nazov_zip_suboru.zip *
zip je archivator
nazov_zip_suboru.zip nazov suboru ktori sa vytvori
* zkomprimuj vsetko v adresari
Niesom si isty ci zip vytvori ten subor tam kde si alebo v /home. Rovnako by si mal zabezpecit aby sa zip spustal v tej slozke ktorej obsah chces zipovat.
P.s Rovnako by si mal zabezpecit aby sa prikaz na kopirovanie dokazal dokoncit aby si nezacal komprimovat skor ako je dokopirovane. Cize bud skript pribrzdis na urcity casovy usek pomocou sleep alebo pred zipovanim pouzijes && co zabezpeci ze sa zip nespusti skor ako sa skoncia predchadzajuce prikazy.
-
bck_srv=10.30.0.11
bck_usr=user
bck_pswd="password"
bck_dom=domena
bck_share=Backup_linux/10.30.0.12/slozka
dir=`date +%F`
time=`date +%H`
#Pripojeni
/bin/umount $bck_mnt 2>/dev/null
/sbin/mount.cifs //$bck_srv/$bck_share $bck_mnt -o user=$bck_usr,password=$bck_pswd,domain=$bck_dom
#Test pripojeni
if [ -e $bck_dst ]; then
echo Sdileni pro zalohy je v poradku
else
echo Neni pripojeno sdileni pro zalohy
echo subject pro mail ';)'
exit 1
fi
#Provedeni zalohy
#Adresar pro den
if ! [ -e $bck_dst/$dir ]; then
echo Nebyl vytvoren adresar $bck_dst/$dir
mkdir $bck_dst/$dir
fi
/bin/mkdir $bck_dst/$dir/$time
/bin/cp -R /root/slozka $bck_dst/$dir/$time
#odpojeni sdileni
/bin/umount $bck_mnt
Tohle je celý script, když jsem zadal jak jsi radil, tak se mi vytvoří na NASce složka "time" a pod tím "time.zip" ale je tam 1kb :/
-
Pouzivas to $bck_dst/$dir/$time aj ako parametre pre zip? Nemohlo sa stat ze sa zmenil cas kym si zacal zipovat?
P.s v tom skripte nevidim to zipovanie.
-
To zipování jsem vyhodil, aby jsi viděl celý ten script, ano, hodil jsem to na oba řádky
-
Ak som to spravne pochopil skript spustas na pc a kopirujes subory na nas. Nebolo by lepsie vytvorit ten zip na pc a az potom ho
kopirovat presunut?
Nieco ako
cd /root/slozka && zip -r zipsubor.zip * && mv zipsubor.zip $bck_dst/$dir/$time/$time.zip
P.s neviem ci netreba tu poslednu cestu uzavriet '$bck_dst/$dir/$time/$time.zip'
Oprava 2 zmena prikazu na zbalenie podadresarov -r
-
Funguje to :) Do NASky se to hodí, ale na konci puštěného scriptu to napíše: mv: failed to preserve ownership
-
Takze co som vycital na nete tak mv sa snazi zachovat prava suboru a pri prenasani do ineho suboroveho systemu sa mu to nepodari tak hlasi chybu. Odporucali pouzit cp nakopirovanie a povodny subor zmazat.
Skus
cd /root/slozka && zip -r zipsubor.zip * && cp zipsubor.zip $bck_dst/$dir/$time/$time.zip && rm zipsubor.zip
-
Děkuju moc!!! Strašně moc díky :) Funguje to.
-
iRonix:
co takhle to trosku zjednodusit a pouzit inkremenatlni zalohovani treba s pomoci rdiff-backup? Pouziti je snadne, i kdyz se muze stat, ze zalohovani na CIFS share nebude fungovat "out-of-the-box". Pokud by NAS podporoval SSH, bylo by to samozrejme jeste jednodussi.
rdiff-backup /root/slozka "$bck_mnt"
# za predpokladu, ze adresar, kam je pripojeny vzdaleny adresar, je $bck_mnt
echo "----------------------------------------"
echo " * Listing increments of backup"
echo "----------------------------------------"
rdiff-backup --list-increments "$bck_mnt"
echo ""
echo "----------------------------------------"
echo " * Removing backups older than 5 Weeks"
echo "----------------------------------------"
rdiff-backup --force --remove-older-than 5W "$bck_mnt"
obnova ze zalohy: http://www.nongnu.org/rdiff-backup/examples.html#restore