Používám stroj s Linuxem (centos), k druhému systému jsem se již připojil pomocí ssh
. Moje otázka nyní zní, jak mohu kopírovat soubory z jednoho systému do jiného systému?
Předpokládejme, že v mém prostředí mám dva systémy jako System A
a System B
. Používám stroj System A
a některé další pomocí System B
stroj.
Jak mohu zkopírovat soubor z System B
do System A
? A zkopírujte soubor z System A
do System B
?
komentářů
- Považuji
scp
za často dřevorubec. Pokud to vyhovuje vašim potřebám, vyzkoušejte linuxjournal.com/article/8904 Místní připojení vzdáleného systému souborů. - @Alan Myslím, že máte na mysli “ těžkopádné „? Cumber Stone je karta Magic 😉
- trochu související: vytvořit šifrovaný archiv místního
dir/
na vzdáleném počítači pomocíssh
:tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
- Pokud máte přístup k ftp vzdáleného serveru, můžeme také použít wget ke stažení jako
$wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to
Reference1 Reference2 - není duplikát, propojená otázka konkrétně požaduje nepoužívat
scp
; pro ten jescp
skvělý a nejjednodušší způsob odpovědi, takže mody prosím odstraňte duplicitní příznak, jako kdyby někdo přešel k jinému, nejužitečnější odpověď bude ztracena.
Odpověď
Syntaxe:
scp <source> <destination>
Na zkopírujte soubor z B
do A
, když jste přihlášeni do B
:
scp /path/to/file username@a:/path/to/destination
Zkopírování souboru z B
do A
při přihlášení do A
:
scp username@b:/path/to/file /path/to/destination
Komentáře
Odpověď
V případě, že potřebujete alternativní přístup.
Nainstalujte sshfs. pokud používáte ubuntu / debian:
sudo apt-get install sshfs
nebo pokud používáte centos / rhel:
sudo yum install fuse-sshfs
nebo v systému macOS
brew install sshfs
Vytvořit prázdný adresář
mkdir /home/user/testdir
„link“ nebo „mount“ dva adresáře
sshfs [email protected]:/remote/dir /home/user/testdir
„zrušit propojení“ adresářů
fusermount -u /home/user/testdir
Odpojení souborového systému na BSD a macOS:
umount mountpoint
nebo
diskutil unmount mountpoint
Další informace naleznete zde linuxjournal.com libfuse / sshfs
Komentáře
- Otázka konkrétně uvádí, že dotyčný operační systém je CentOS; není odvozen z Debianu.
apt-get
je debianismus; správný správce balíčků by bylyum
nebo pro opravdu staré verze CentOSup2date
neborpm
. - +1 odpověď na tuto otázku může být mimo kontext, ale stále mi pomohla, a pokud vidím, i ostatním.
- Nesouvisí, ale ‚ sa odpověď jednoho milionu dolarů xD
- Pokud správně rozumím, dává to PŘÍSTUP ke vzdáleným souborům, ale neKOPÍROVAT je?
- @ ToolmakerSteve you ‚ re zcela v pořádku: vytvoří falešný adresář (mount), takže můžete ke kopírování nebo přesunu věcí použít všechny vaše preferované nástroje:
cp
,mv
,rm
,rsync
,unison
… Příkazscp
by dokázal kopírovat pouze soubory.
Odpovědět
Někdy je třeba si s tarem udělat představu:
tar -C / -cf - \ opt/widget etc/widget etc/cron.d/widget etc/init.d/widget \ --exclude=opt/widget/local.conf | ssh otherhost tar -C / -xvf -
Komentáře
- Kreativita? Takto jsme sdíleli páskové jednotky. 🙂
- Můžete nám říct, co to dělá? Například nemám ponětí, co má ‚ cron ‚ společného s kopírováním souboru!
- @aliqandil opt / widget etc / widget etc / cron.d / widget etc / init.d / widget jsou jednotlivé soubory, které mají být zahrnuty do archivu tar. Smyslem bylo ukázat, proč někdy musíte mít chuť. Tato řada příkazů streamuje archiv tar přes připojení ssh a zruší jeho archivaci na druhé straně. Na disk tedy není nikdy zapsán žádný archiv tar. Někdy to používám k výběru souborů ke kopírování v jednom příkazu.
- Au! Naučil jsem, že první ‚ / ‚ byla zdrojová cesta! (Co je to?) Takže to byla hloupá otázka! Dík. 🙂
- Tar bude chdir k “ / „, takže všechny následující cesty jsou relativní k “ / „.
odpověď
Pokud chcete synchronizovat soubory na obou systémech, podívejte se na program rsync
:
Komentáře
- Toto je skutečný profesionální nástroj.
Odpověď
Pokud máte jeden z běžných operačních systémů, můžete nainstalovat pigz, který je stejný jako gzip, kromě toho, že bude používat více jader a být rychlejší v rychlé síti. Můj příkaz je trochu jiný.
tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S"
nebo jiný způsob získávání souborů
ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S
nebo zálohujte root root pomocí
ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz
komentářů
Odpovědět
Jednodušší metodou, která funguje pomocí počítačů NVIDIA Jetson ovládaných SSH, je připojení pomocí SFTP (SSH File Transfer Protocol).
Předpokládám, že bych chtěl dokument přesunout UFO_blueprint.odt
ze vzdálených serverů NASA a přesuňte jej do mých dokumentů.
-
cd
na místo, kam chcete soubor uložit
$ cd Documents
- připojit
$ sftp sammy@your_server_ip_or_remote_hostname
- Přejděte do adresáře obsahujícího soubor, který chcete přenést.
$ cd NASA/secret_files/
- Přenos
$ get UFO_blueprint.odt
Chcete-li získat celý adresář, použijte
$ get -r secret_files/
Komentáře
- použijte
put
příkaz pro nahrávání souborů
odpověď
rekurzivní kopie souborů a složek Unix / Linux přes zabezpečené prostředí pomocí následujícího kódu:
scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path>
Celý příklad může vypadat takto:
scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Pokud nemáte server DNS k rozlišení názvů hostitelů, použijte místo toho svou IP adresu. Výše uvedený příklad může vypadat takto
scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Odpovědět
Pokud běží SCP / SSH na jiném portu, ujistěte se, že jste zadali velká
možnost portu.
Příklad:
scp -P 7121 /users/admin/downloads/* [email protected]:/home/
Komentáře
- Tato otázka je stará sedm let a má mnoho odpovědí již. I když je pravda, že ssh může používat jiné než výchozí porty a je vyžadována možnost ssh client ‚ s
-P
, nemusíte ‚ opravdu nepomůže s daným problémem. Zkuste se zaměřit na nedávné otázky.
scp
ke kopírování souboru do nebo z místního počítače (systém A), když jste přihlášeni ke vzdálenému serveru (systém B) sssh
.scp
vás přihlásí na vzdálený server, zkopíruje soubor a poté vás znovu odhlásí v jednom procesu, takže jej stačí spustit z prostředí vašeho místního počítače. Jak již bylo řečeno, můžetescp
použít, pokud jste ‚ přihlášeni do systému B pomocí SSH a chcete kopírovat soubory mezi systémem B a systémem C.-P
k určení portu TCP na vzdáleném hostiteli. To mě pokaždé chytí, protožessh
používá-p
.