Komprimace do tar s datem a časem

Le_Ze

  • ***
  • 145
    • Zobrazit profil
    • E-mail
Komprimace do tar s datem a časem
« kdy: 06. 12. 2024, 10:11:14 »
Zdrvím.
Nějak neumim vyřešit.

tar -pczf /media/M2disk/zalohy/Moje_data-`date '+%Y-%d-%m-%H-%M'`.tgz /home/leo/Documents/Moje_data.gso

Přes terminal to funguje jen vyhodi
tar: Odstraňuje se úvodní „/“ z názvů prvků

crontab to však vubec nespusti.
Děkuji.





Re:komprimace do tar s datem a časem
« Odpověď #1 kdy: 06. 12. 2024, 10:50:26 »
Není úplně dobrý nápad používat tyhle shell věci a spec. znaky přímo v crontabu. Podle konkrétního démona cron a zvoleného shellu (nastavení SHELL= v crontab) můžete narazit na problémy se zápisem těch procent, co se pak musí escapovat, těch stejně tak těch apostrofů, případně vnořených úvozovek. Většinou to jde přepsat i do té jednořádkové podoby, aby to crond sežral, ale je lepší se tomu vyhnout.

Udělal bych si nějaký shell skript např. (/usr/local/bin/documents-backup.sh), u kterého bych si odladil funkčnost, a pak mu přidal záznam v crontabu, kde by bylo už jen např. /bin/bash /usr/local/bin/documents-backup.sh

Jinak jestli budete to budete mít napsané jako skript, můžete se pak mrknout i na použití systemd timerů místo cronu na spouštění.

https://documentation.suse.com/smart/systems-management/html/systemd-working-with-timers/index.html
https://wiki.archlinux.org/title/Systemd/Timers

Na moderních distribucích je tohle většinou lepší varianta s víc možnostmi, byť musíte typicky pro každý timer udělat dva soubory.

Re:komprimace do tar s datem a časem
« Odpověď #2 kdy: 06. 12. 2024, 10:53:29 »
možná nenajde tar, ten crontab se spouští často s jinou $PATH

dal bych ještě dočasně za příkaz přesměrování výstupu a chybového výstupu do sboru, něco jako

Kód: [Vybrat]
/usr/bin/tar blablabla 1>/neco.1 2>neco.2
nebo jak radí kolega, dát to jako skript.sh

Le_Ze

  • ***
  • 145
    • Zobrazit profil
    • E-mail
Re:Komprimace do tar s datem a časem
« Odpověď #3 kdy: 06. 12. 2024, 10:55:17 »
A nemam tam nějakou chybu?
V logu mam toto.
 (root) CMD (tar -pczf /media/M2disk/zalohy/Moje_data-`date '+)

Re:Komprimace do tar s datem a časem
« Odpověď #4 kdy: 06. 12. 2024, 11:02:48 »
Zkuste vyhodit ty jednoduché úvozovky okolo formátovacího řetězce pro date a pak před každé procento přidat zpětné lomítko, abyste to odescapoval.

Ale tohle je přesně ten opruz, který může vést i k nečekaným výsledkům (vezměte si, že třeba děláte nějaký mazací one-liner, co se bude pokaždé chovat jinak, podle toho jestli se spustí z cronu, nebo interktivního shellu - to může dopadnou i pěkným průšvihem). Proto je podle mě lepší ten sh skript.


k3dAR

  • *****
  • 3 064
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Komprimace do tar s datem a časem
« Odpověď #5 kdy: 06. 12. 2024, 19:19:38 »
Davat do cronu oneliner je opravdu jen pro toho kdo si to dokaze (a chce/potrebuje) odladit, takze to dej do skriptu jak uz zaznelo (sam si to casto dam do skriptu i presto ze oneliner bych odladil, prave proto ze ve skriptu je to snadnejsi a hlavne pripadne rozsireni funkce neznamena zbyecne znovu komplikovane ladeni)

Le_Ze

  • ***
  • 145
    • Zobrazit profil
    • E-mail
Re:Komprimace do tar s datem a časem
« Odpověď #6 kdy: 06. 12. 2024, 20:45:33 »
Už to mam ve skriptu a funguje, takže vyřešene.
Děkuji

Nickolas33

  • *
  • 1
  • developer
    • Zobrazit profil
    • Glorium
    • E-mail
Re:Komprimace do tar s datem a časem
« Odpověď #7 kdy: 09. 12. 2024, 08:35:06 »
Good post