rsync příkazy a dávkový soubor

Pokud si nevíte rady s operačním systémem MacOS X, jeho nastavením nebo aplikacemi týkajícími se právě práce s počítačem, tak zde můžete vznést svůj dotaz

Moderátoři: MichalM.Mac, zmiy, dandas, AdamVyborny, yonah, Macforum_Admin, Unreed

Odpovědět
prostah
Příspěvky: 62
Registrován: 07 říj 2012 16:27

rsync příkazy a dávkový soubor

Příspěvek od prostah » 27 dub 2017 17:24

Nedaří se mi vytvořit odpovídající příkaz a následně dávkový soubor pro rsync.
Můj problém:
Chci mít možnost jednoduchého zálohování jedné složky. Ve Win mi je vše jasné, použiji robocopy a v textovém editoru vytvořím jednoduchý skript, který uložím jako *.bat, takže se při poklikání spustí. MacOS ještě moc neovládám. Předpokládejme, že chci zkopírovat obsah složky OUT do složky IN.
pokud v terminálu zadám:

Kód: Vybrat vše

rsync -r ...Desktop/OUT ...Desktop/IN
tak se mi zkopíruje složka OUT celá do IN (následně to tedy vypadá ...Desktop/OUT/IN)
ne pouze její obsah.
Takže první dotaz je, jaké paramerty(options) příkazu rsync mám použít, abych zkopíroval pouze obsah, nebo ještě lépe, abych případný obsah složky IN zcela smazal a následně vyplnil obsahem složky OUT.
A dotaz druhý. jak vůbec vytvořím dávkový soubor. Ve Win zcela jednoduše v textovém editoru uložím jako *.bat.
V MacOS mi TextEdit tuto možnost nenabízí. A vůbec, mají dávkové soubory pod Unixem koncovku bat?
Díky za odpověď

Zeggjk
Příspěvky: 836
Registrován: 15 bře 2013 11:17
Bydliště: Děčín

Re: rsync příkazy a dávkový soubor

Příspěvek od Zeggjk » 27 dub 2017 17:53

Doporučuji vypsat plnou cestu, pak máte jistotu, že to bude správná např:

Kód: Vybrat vše

rsync -r --delete /Users/pepa/Data/OUT/ /Users/pepa/Data/IN/
..a ani nemusíte nic mazat. paramert --delete zajistí, že když něco odstraníte v adresáři OUT tak se to odstraní i v IN

Soubor nemusí mít žádnou extenzi, ale je zavedené, že se používá sh např, synchronizuj.sh
To že je soubor spustitelný se zajistí správným atributem souboru

Kód: Vybrat vše

Jiri-MacBook-Air:Data jirka$ ls -l *.sh
-rwxr-xr-x@ 1 jirka  wheel  217 14 lis 18:51 reinsertdisk.sh
ls je jako dir na Win, -l vypíše podrobnosti a *.sh vypíše jen soubory s extenzí sh
pomlčka značí, že je to soubor, adresář by tam měl d
rwx značí, že uživatel jirka může soubor číst,zapisovat do něj a spouštět
r-w značí, že členi skupiny wheel můžou soubor číst a spouštět
poslední skupina r-x znamená, že všichni mohou soubor číst a spouštět.

Tento soubor je tedy spustitelný. Jak to nastavit:
Představte si místo r číslo 4, místo w 2 a místo x 1
rwx = 7
rw- = 6
r-x = 5
r-- = 4

Kód: Vybrat vše

chmod 750 reinsertdisk.sh
nastaví rwx pro uživatele, r-x pro skupinu a nic pro ostatní.

Takže uložíte soubor a poté nastavíte atributy pro spouštění tohoto souboru např:

Kód: Vybrat vše

chmod 755 /Users/pepa/synchronizuj.sh
Naposledy upravil(a) Zeggjk dne 27 dub 2017 18:09, celkem upraveno 1 x.
iPhone 15 pro 128GB
Macbook Pro 14" 2021 M1 Pro, 512GB SSD, 16GB RAM
Mac mini 2014, Intel i5 1,4GHz, 250GB SSD, 4 GB RAM
AW Nike+ Series 4 GPS 44mm
Apple TV 4K

Uživatelský avatar
ra3662
Příspěvky: 4642
Registrován: 14 srp 2012 10:25
Bydliště: Ostrava

Re: rsync příkazy a dávkový soubor

Příspěvek od ra3662 » 27 dub 2017 18:00

Ano přesně tak jak je popsáno výše.
Pokud je potřeba úlohu zautomatizovat, tak já to řešil přes kalendář. Spouští se mi automaticky v daných intervalech.
Vše se krásně testuje v terminálu a pak se pouze vytvoří aplikace v automatoru.

prostah
Příspěvky: 62
Registrován: 07 říj 2012 16:27

Re: rsync příkazy a dávkový soubor

Příspěvek od prostah » 27 dub 2017 18:07

Cestu jsem vypsal v příkazu celou, to jen tady jsem to neopisoval.
takže parametr --delete řeší jeden můj problém, abych zcela nahradil obsah. Nicméně pořád nevím, jak zkopírovat pouze obsah, ne celý adresář. To by nebyl problém při jednostranné synchronizaci, ale v dalším kroku hodlám vytvořit příkaz i ve směru opačném(z IN do OUT).
Proč všechny tyto opičky - používám jeden program, který si vytváří vnitřní soubory šablon, u kterých nemůžu určit místo uložení. Program používám na PC a na Macu(pod Wime) a proto chci ručně po skončení práce na jednom stroji překopírovat soubory šablon do Dropbox, ze kterého je následně vytáhnu do druhého stroje. A naopak

Uživatelský avatar
kmarty
Příspěvky: 117
Registrován: 08 srp 2012 20:19

Re: rsync příkazy a dávkový soubor

Příspěvek od kmarty » 27 dub 2017 18:11

Zeggjk to uz napsal (mozna jen nezduraznil) - pocatecni adresar _musi_ koncit lomitkem jinak nebude kopirovan jeho obsah ale on sam.

Jinak bych misto prepinac '-r' pouzil spis '-a' (dlouhym jmenem '--archive' - dela totez co sada prepinacu -r -l -p -t -g -o -D). A mozna i '-v' (--verbose).
Jeste bych vice nez doporucil aby ten script zacinal shebangem. Bez nej je to prasarna (shebang je to co urcuje cim bude script interpretovan. To ze bash bere, ze pokud chybi shebang, tak na to pusti sam sebe, to je kapitola jina).
V tomhle pripade teda neco jako:

Kód: Vybrat vše

#!/bin/sh
rsync -av --delete /SRC/ /DEST

prostah
Příspěvky: 62
Registrován: 07 říj 2012 16:27

Re: rsync příkazy a dávkový soubor

Příspěvek od prostah » 27 dub 2017 18:23

Děkuju za odpovědi
To s tím ukončením lomítkem mi opravdu uniklo. Ostatním se prokoušu, kdyžtak bych se ještě zeptal.

Odpovědět