Linux (centos) gépet használok, már csatlakoztam a másik rendszerhez a ssh
. Most az a kérdésem, hogy hogyan tudok másolni fájlokat egyik rendszerből egy másik rendszerbe?
Tegyük fel, hogy a környezetemben két olyan rendszerem van, mint például System A
és System B
. Én az System A
gépet használom, és másokat a System B
gép.
Hogyan másolhatok egy fájlt a System B
fájlból a System A
fájlba? És másoljon egy fájlt a System A
fájlból a System B
fájlba?
Megjegyzések
- Úgy találom, hogy a
scp
gyakran nehézkő. Ha megfelelne az Ön igényeinek, próbálja ki ezt: linuxjournal.com/article/8904 Helyileg szereli fel a távoli fájlrendszert. - @Alan Szerintem ” nehézkes ” -re gondolsz? Cumber Stone egy varázslat kártya;)
- némileg kapcsolódó: titkosított archívumot készít helyi
dir/
a távoli gépen assh
használatával:tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
- Ha hozzáfér a távoli kiszolgáló ftp-jéhez, akkor a wget használatával letölthetjük például a
$wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to
Reference1 Reference2 - Nem duplikált, összekapcsolt kérdés kifejezetten arra kéri, hogy ne használja a
scp
; erre az egyikscp
remek és legkönnyebb válaszként válaszolni, ezért kérjük, hogy a modok távolítsák el az ismétlődő jelzőt, mintha valaki máshoz menne, a leghasznosabb válasz kimarad.
Válasz
Szintaxis:
scp <source> <destination>
másoljon egy fájlt a B
fájlból a A
fájlba, miközben be van jelentkezve a B
:
scp /path/to/file username@a:/path/to/destination
Fájl másolása a B
fájlból a A
fájlba, miközben be van jelentkezve a A
:
scp username@b:/path/to/file /path/to/destination
Megjegyzések
Válasz
Abban az esetben, ha alternatív megközelítésre van szüksége.
Telepítse az sshf-eket. ha ubuntu / debian-t használ:
sudo apt-get install sshfs
vagy ha centos / rhel-t használ:
sudo yum install fuse-sshfs
vagy a macOS-ban
brew install sshfs
Hozzon létre egy üres rendszert
mkdir /home/user/testdir
“link” vagy “csatolja” a két könyvtárat
sshfs [email protected]:/remote/dir /home/user/testdir
“leválasztja” az irányelveket
fusermount -u /home/user/testdir
BSD és macOS rendszeren a fájlrendszer leválasztásához:
umount mountpoint
vagy
diskutil unmount mountpoint
További információt itt talál: linuxjournal.com libfuse / sshfs
Megjegyzések
- A kérdés kifejezetten kimondja, hogy a kérdéses operációs rendszer CentOS; nem Debian-eredetű. A
apt-get
egy debianizmus; a helyes csomagkezelő a következő lenne:yum
, vagy a CentOS valóban régi ízei eseténup2date
vagyrpm
. - +1 erre a kérdésre adott válasz nem lehet összefüggésben, de ez még mindig segített nekem, és amennyire látom, mások is.
- Nem kapcsolódik, de ‘ egymillió dolláros válasz xD
- Ha jól értem, ez hozzáférést biztosít a távoli fájlokhoz, de nem MÁSOLJA őket?
- @ A Toolmaker Steve ‘ teljesen igaza van: hamis könyvtárat hoz létre (mount), hogy az összes előnyben részesített eszközt felhasználhassa a dolgok másolásához vagy áthelyezéséhez:
,mv
,rm
,rsync
,unison
… Ascp
parancs csak fájlokat tud másolni.
Válasz
Néha szükséged van a tar-ra:
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 -
Megjegyzések
- Kreativitás? Így szoktuk megosztani a szalagos meghajtókat. 🙂
- Meg tudnád mondani, mit csinál ez? Például fogalmam sincs, mi köze van a ‘ cron ‘ fájl másolásához!
- @aliqandil opt / widget etc / widget etc / cron.d / widget etc / init.d / widget are egyedi fájlok, amelyeket fel kell venni a tar archívumba. A lényeg az volt, hogy szemléltesse, miért kell néha divatba jönnie. Ez a parancssor ssh kapcsolaton keresztül továbbítja a kátrányarchívumot, és archiválja a másik oldalon. Így soha semmilyen tar-archívumot nem írnak lemezre. Ezt néha fájlok cseresznyeválogatására használom, hogy egy parancsba másoljam őket.
- Ow! Megtanítottam, hogy az első ‘ / ‘ volt a forrásút! (Mi ez?) Szóval ez buta kérdés volt! Köszönöm. 🙂
- Tar a következő címre fog irányulni: ” / “, így az összes következő út a ” / “.
Válasz
Ha mindkét rendszer fájljait szinkronban kívánja tartani, akkor nézze meg a rsync
programot:
Megjegyzések
- Ez egy igazi szakmai eszköz.
Válasz
Ha rendelkezik a közös operációs rendszerekkel, telepítheti a pigz-t, amely megegyezik a gzip-vel, azzal a különbséggel, hogy több magot fog használni és gyorsabb legyen egy gyors hálózaton keresztül. A parancsom egy kicsit más.
tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S"
vagy a fájlok másik megszerzésének módja
ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S
vagy készítsen biztonsági másolatot a gyökérfs-ről
ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz
Megjegyzések
Válasz
Egy egyszerűbb módszer, amely SSH-vezérlésű NVIDIA Jetson számítógépeken keresztül működik, az SFTP-hez (SSH File Transfer Protocol) való csatlakozás.
Tegyük fel, hogy áthelyezem a dokumentumot / div> a NASA távoli szervereiről, és helyezze át a Dokumentumomba.
-
cd
oda, ahová a fájlt szeretné menteni
$ cd Documents
- Csatlakozás
$ sftp sammy@your_server_ip_or_remote_hostname
- Keresse meg az átvinni kívánt fájlt tartalmazó könyvtárat.
$ cd NASA/secret_files/
- Átvitel
$ get UFO_blueprint.odt
A teljes könyvtár megszerzéséhez használja a következőt:
$ get -r secret_files/
Megjegyzések
- használja a
put
parancs fájlok feltöltésére
Válasz
A fájlok és mappák Unix / Linux rekurzív másolata egy biztonságos shell fölött a következő kód használatával:
scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path>
Egy teljes példa a következőképpen nézhet ki:
scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Ne feledje, hogy ha nincs DNS-kiszolgáló a hosztnevek feloldására, akkor inkább az IP-címét használja. A fenti példa így nézhet ki
scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Válasz
Ha futnak SCP / SSH egy másik porton, győződjön meg róla, hogy megadta a nagybetűs -P
port opciót.
Példa:
scp -P 7121 /users/admin/downloads/* [email protected]:/home/
Megjegyzések
- Ez a kérdés hétéves, és sok választ tartalmaz már. Bár igaz, hogy az ssh nem alapértelmezett portokat használhat, és az ssh kliens ‘ s
-P
opcióra van szükség, akkor nem kell ‘ nem igazán segít a problémán. Próbáljon a legújabb kérdésekre összpontosítani.
scp
fájlt másolni egy helyi gépre vagy onnan (A rendszer), miközben be van jelentkezve egy távoli szerverre (rendszer B) assh
gombbal. Ascp
bejelentkezik a távoli kiszolgálóra, átmásolja a fájlt, majd egy folyamat során újra kijelentkezteti Önt, ezért csak futtassa a helyi gép shelljéből. Ennek ellenére használhatja ascp
alkalmazást, ha ‘ újból bejelentkezett a B rendszerbe SSH-n keresztül, és fájlokat szeretne másolni a B rendszer és a System között. C.-P
a távoli gazdagép TCP-portjának megadásához. Ez minden alkalommal megfog, mertssh
a-p
szót használja.