Snažím se jednoduše synchronizovat složku pomocí rsync přes moji místní síť z mého počítače před sebou do cílového počítače.
#!/bin/bash
echo "This script will sync from my Macbook Dropbox/scripts/ folder to [email protected] @ Norms house"
OPTIONS="--recursive --ignore-existing --progress"
SRC_DIR="~/Dropbox/scripts/"
DST_DIR="[email protected]:~/scripts/"
rsync "$OPTIONS" "$SRC_DIR" "$DST_DIR"
Abych si udělil práva psaní
chmod +x nameofscript.sh
Když to spustím, zobrazí se:
rsync: --recursive --ignore-existing --progress: unknown option
Jak správně uložím tyto možnosti a spustím je jako skript?
Přijatá odpověď:
Citováním "$OPTIONS"
, shell to předává rsync jako jeden řetězec, takže rsync se snaží najít jedinou možnost s názvem "--recursive --ignore-existing --progress"
, který zjevně neexistuje, protože se jedná o tři samostatné možnosti.
Tohle by vám to mělo opravit:
rsync $OPTIONS "$SRC_DIR" "$DST_DIR"
Lepší možností může být použití pole bash k uložení vašich možností.
OPTIONS=(
--recursive
--ignore-existing
--progress
)
# ...
rsync "${OPTIONS[@]}" "$SRC_DIR" "$DST_DIR"
Výhodou použití pole je, že pak můžete zavádět položky, které obsahují mezery, pokud jsou nějaké nutné.
Jaký druh online úložiště jádra nebo stránek pro sdílení (možná pro notebooky)?
Co přepíše /etc/resolv.conf při každém spuštění?