Fórum Ubuntu CZ/SK

Ostatní => Ubuntu Server => Téma založeno: campesino 04 Prosince 2010, 07:15:31

Název: cron špatně zálohuje
Přispěvatel: campesino 04 Prosince 2010, 07:15:31
Dobrý den, pokoušel jsem se zavést automatické zálohy webu ze serveru Ubuntu 10.04 pomocí cron, který spouští skript. Pokud skript spustím ručně, jako root, záloha z adresáře /var/www se provede kompletně. Pokud stejný skript spustí cron, některé adresáře i soubory v záloze chybí.

crontab -e

Kód: [Vybrat]
# m h  dom mon dow   command
44 5 * * * /root/skripty/zaloha_www.sh

skript zaloha_www.sh:

Kód: [Vybrat]
#!/bin/sh
#databaze OK
mysqldump baroko -u baroko --password="xxxxxxxxxxxxxx" > /home/zaloha/zaloha_www/baroko.sql

#zkopirovani app baroko tako OK
cp -r /var/www/baroko /home/zaloha/zaloha_www

#pokud script provadi cron, jsou v archivu jen nektere
#adresare a soubory
tar -cvzf /home/zaloha/zaloha_www.tar.gz /home/zaloha/zaloha_www

chmod -R 666 /home/zaloha/zaloha_www


Děkuji za případné rady
Název: Re: cron špatně zálohuje
Přispěvatel: petergula 04 Prosince 2010, 10:31:03
A ktore chybaju?
Kód: [Vybrat]
diff /var/www/baroko /home/zaloha/zaloha_www. Tie co chybaju maju nejake specialne prava/vlastnika? Skus si vystup cp presmerovat do suboru, ci tam nemas nejake chybove hlasky. Popr. skus cp s prepinacom -a. Nemas v zdroj. adresari aj sw/hw linky? ...
Název: Re: cron špatně zálohuje
Přispěvatel: jmp 04 Prosince 2010, 12:07:55
mozna se mylim, ale mam dojem, ze v cronu nejsou definovane cesty (promenna PATH) - budto definujte cesty, nebo ve scriptu pouzivejte plne cesty k programum...
Název: Re: cron špatně zálohuje
Přispěvatel: Tomáš Břinčil 04 Prosince 2010, 12:46:46
do crontabu přidáváš pod rootem?
Název: Re: cron špatně zálohuje
Přispěvatel: petergula 04 Prosince 2010, 13:57:45
do crontabu přidáváš pod rootem?

To som chcel odhalit tym, ze co sa mu neskopiruje :)
Kód: [Vybrat]
crontab -e nastavuje crontab pre aktualneho uzivatela.
Kód: [Vybrat]
sudo crontab -e zasa pre roota
a pre system v /etc/crontab.

Název: Re: cron špatně zálohuje
Přispěvatel: Tomáš Břinčil 04 Prosince 2010, 14:43:55
sudo crontab -e

Kód: [Vybrat]
# m h  dom mon dow   command
* * * * * whoami >> /tmp/whoami.txt

pak mrkni co je v tom texťáku, bude tam user, pod kterým se to spustilo...
Název: Re: cron špatně zálohuje
Přispěvatel: campesino 04 Prosince 2010, 15:42:14
Děkuji všem za odpovědi, v adresáři /var/www/baroko je Joomla, v archivu chybí adresáře administrator, components a některé soubory, pokaždé je to ale trochu jinak - někdy chybí ještě další adresáře a soubory; řádky do crontab zadávám jako root (je to pronajatý virtuální server ubuntu 10.04, ale měli tam uživatele root, tak jsem to tak nechal (sudo nepoužívám); skript adresář /var/www/baroko nejprve zkopíruje do adresáře /home/zaloha/zaloha_www a ta kopie je vždy kompletní, ale selhává vytvoření archivu (zkoušel jsem i gzip -to dopadalo stejně).

Pokud ten zalohovaci skript spustím jako root přímo z konzole, tak je vše OK. Děkuji všem za typy.
Název: Re: cron špatně zálohuje
Přispěvatel: campesino 04 Prosince 2010, 15:52:22
Ještě jsem zapomněl: /tmp/whoami.txt : root
Název: Re: cron špatně zálohuje
Přispěvatel: daysleeper 04 Prosince 2010, 17:57:53
http://forum.ubuntu.cz/index.php?topic=44401.0
Název: Re: cron špatně zálohuje
Přispěvatel: Tomáš Břinčil 04 Prosince 2010, 18:44:25
heh ;D
k++;
Název: Re: cron špatně zálohuje
Přispěvatel: Martin - ViPEr*CZ* 04 Prosince 2010, 20:18:42
Zajímavé... to je dobré vědět... já si dělal zálohovač v C++, tak tam jestli mám v parametr, tak to ani nepoznám... výstup si řídím sám v programu. Zajímavé čtení každopádně ;)
Název: Re: cron špatně zálohuje
Přispěvatel: daysleeper 04 Prosince 2010, 21:13:18
nejde prece o v parametr... jde o to, ze cron nezvlada urcitou delku vystupu z prikazu, cili je potreba ten vystup prip. nekam presmerovat... a taky v 10.10 uz by to melo byt opravene...
Název: Re: cron špatně zálohuje
Přispěvatel: campesino 04 Prosince 2010, 22:45:45
díky moc všem, bez parametru v to funguje OK
Název: Re: cron špatně zálohuje
Přispěvatel: Martin - ViPEr*CZ* 05 Prosince 2010, 16:00:46
PS: jen se zeptám... s tím parametrem v... neházelo to náhodou chyby do syslogu? taktéž pokud funguje lokální doručování emailů nemá root nějaké emaily (čtou se příkazem mail)?
Název: Re: cron špatně zálohuje
Přispěvatel: hama4tux 08 Prosince 2010, 10:52:50
Dobrý den, pokoušel jsem se zavést automatické zálohy webu ze serveru Ubuntu 10.04 pomocí cron, který spouští skript. Pokud skript spustím ručně, jako root, záloha z adresáře /var/www se provede kompletně. Pokud stejný skript spustí cron, některé adresáře i soubory v záloze chybí.

crontab -e

Kód: [Vybrat]
# m h  dom mon dow   command
44 5 * * * /root/skripty/zaloha_www.sh

skript zaloha_www.sh:

Kód: [Vybrat]
#!/bin/sh
#databaze OK
mysqldump baroko -u baroko --password="xxxxxxxxxxxxxx" > /home/zaloha/zaloha_www/baroko.sql

#zkopirovani app baroko tako OK
cp -r /var/www/baroko /home/zaloha/zaloha_www

#pokud script provadi cron, jsou v archivu jen nektere
#adresare a soubory
tar -cvzf /home/zaloha/zaloha_www.tar.gz /home/zaloha/zaloha_www

chmod -R 666 /home/zaloha/zaloha_www


Děkuji za případné rady

Ahoj co se toh cronu týče

Kód: [Vybrat]
44 5 * * * /root/skripty/zaloha_www.shtak zde máš chybku
Kód: [Vybrat]
44 5 * * * root /root/skripty/zaloha_www.shdále by neměl cron končit prázdným řádkem takže pro sichr
Kód: [Vybrat]
44 5 * * *  root /root/skripty/zaloha_www.sh
;

Ted spoustis script jako root a mel by ti skopirovat vse...
Název: Re: cron špatně zálohuje
Přispěvatel: starenka 08 Prosince 2010, 20:48:48
ja bych ti jeste poradil, aby sis to root heslo dal nekam do promenny a souboru (samozrejme s prislusnejma pravama pro necteni mimo root napr.) a do tehle skriptu ho jen inkludnul (mimo jine docela prakticky, kdyz zmenis heslo - menis ho na jednom miste)

neco ala treba
Kód: [Vybrat]
kosmik2:~# cat /root/.scripts/add-user-db-mysql.sh
#!/usr/bin/env bash
#
# creates a mysql user w/ random pass &
# grants priviledges to new database w/ it's name
#
# @author starenka
# @since  04-01-2008
# @version 0.1
#

source /root/includes/mysql

if [ -z "$1" ]; then
    echo "O HAI! You haven't passed any argument user/db_name. Use the force, Luke!"
else
    echo 'generating pass....'
    UPASS=`python -c 'from random import choice;import string;print "".join([choice(string.letters+string.digits)
for i in range(20)])'`
    echo 'creating user and granting privileges....'
    echo "GRANT ALL ON $1.* to $1@localhost IDENTIFIED BY '$UPASS';" | mysql -uroot -p$ROOT_PASS                                                                
    echo 'creating db....'                                                                                                                                      
    echo "CREATE DATABASE $1 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci" | mysql -u$1 -p$UPASS                                                          
    echo                                                                                                                                                        
    echo "here's your cookie: mysql://$1:$UPASS@$1"
    echo
    echo "keep it safe, son!"
fi