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
scpza č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/toReference1 Reference2 - není duplikát, propojená otázka konkrétně požaduje nepoužívat
scp; pro ten jescpskvě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-getje debianismus; správný správce balíčků by bylyumnebo pro opravdu staré verze CentOSup2dateneborpm. - +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říkazscpby 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ů.
-
cdna 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
putpří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.
scpke 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.scpvá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ůžetescppouží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.-Pk určení portu TCP na vzdáleném hostiteli. To mě pokaždé chytí, protožesshpoužívá-p.