Portál AbcLinuxu, 26. dubna 2024 20:58


Dotaz: Problém s přejmenováním souboru po automatické záloze

24.4.2015 10:12 Čupřina
Problém s přejmenováním souboru po automatické záloze
Přečteno: 184×
Odpovědět | Admin
Příloha:
Zdravím všechny linuxáře. Mám problém s automatickým přejmenováním souboru po automatické záloze. Mám Ubuntu Linux 10.04.3, starší kousek. Mám nastavenou zálohovací úlohu přes webmin - Systém - Zálohování souborů (Filesystem Backup). Záloha probíhá do externího NAS úložiště každý den kolem 1:00. Nastavení dle přiloženého souboru - záloha proběhne v pořádku, vytvoří se cca 15GB soubor, tady asi problém není. Po záloze se spustí bash, který by měl přejmenovat vzniklý soubor dle aktuálního dne v týdnu - script renameHomeKomplet:
#!/bin/bash
vysl="$(mv -f /mnt/share/home_komplet /mnt/share/`LANG=en_US date +%A`_home_kom$
if [ "$?" = "0" ]; then
  echo "Soubor zalohy home_komplet byl v poradku prejmenovan" | mail -s "test$
else
  echo "Nepodarilo se prejmenovat soubor zalohy home_komplet, chyba c.$? : $vys$
  exit 0;
Výsledek je vždy email s tímto zněním: Nepodarilo se prejmenovat soubor zalohy home_komplet, chyba c.1 : mv: cannot move `/mnt/share/home_komplet' to `/mnt/share/Monday_home_komplet': File exists

Tedy že soubor se zálohou existuje... Nicméně - soubor původní, který dle scriptu existuje, sám script smaže... Tedy například v pondělí se vytvoří záloha Monday_home_komplet, další pondělí script vytvoří novou zálohu home_komplet, při pokusu o přejmenování souboru na Monday_home_komplet smaže (!) původní existující týden starý soubor Monday_home_komplet, ale ten nový nepřejmenuje na Monday_home_komplet a skončí s výše uvedenou chybou. Výsledkem po týdnu je, že se všechny denní zálohy smažou a zůstane jen ten jeden, nově vzniklý. Pokud script na přejmenování ovšem spustím ručně ráno, vše proběhne normálně, soubor se přejmenuje (i pokud původní soubor existuje).

Zkusil jsem dát nějakou prodlevu mezi vytvořením zálohy a pokusem o přejmenování (i 2 hodiny), ale toto nepomohlo.

Poradíte někdo? Díky moc.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.4.2015 10:51 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Problém s přejmenováním souboru po automatické záloze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud ten skript někde funguje a jinde ne, je to záležitost kontextu v jakém běži. Typicky přístupová práva, efektivní uživatel pod kterým běží. Zkusil bych do něj jednak před move dát explicitní smazání. Něco jako
rm /mnt/share/`LANG=en_US date +%A`_home_komplet
s ifem na echo jestli smazání provedl. Tím by pro move zmizela situace, kdy má cílový soubor a kterou přetlačuje tím --force. A případně výpis efektivního uživatele.
24.4.2015 12:10 Čupřina
Rozbalit Rozbalit vše Re: Problém s přejmenováním souboru po automatické záloze
Díky za rychlý tip! Script jsem upravil:
#!/bin/bash
vyslRM="$(rm /mnt/share/`LANG=en_US date +%A`_home_komplet 2>&1)"
if [ "$?" = "0" ]; then
  vyslRM="Soubor zalohy byl v poradku smazan.";
else
  vyslRM="Smazani souboru zalohy skoncilo s chybou, chyba c.$? : $vyslRM.";
fi

vysl="$(mv -f /mnt/share/home_komplet /mnt/share/`LANG=en_US date +%A`_home_komplet 2>&1)"
if [ "$?" = "0" ]; then
  echo "Uzivatel (whoami):" `whoami` ". $vyslRM Soubor zalohy home_komplet byl v poradku prejmenovan" | mail -s "Backup rename OK" mujmail@mail.com;
else
  echo "Uzivatel (whoami):" `whoami` ". $vyslRM Nepodarilo se prejmenovat soubor zalohy home_komplet, chyba c.$? : $vysl" | mail -s "Backup rename error" mujmail@mail.com;
  exit 0;
fi
Tak uvidíme, jestli pomohlo, hlavně tedy uvidím, pod jakým uživatelem to ten automat spouští... Dám vědět.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.