Olen Linux (centos) -koneella, olen jo yhteydessä toiseen järjestelmään käyttämällä ssh
. Kysymykseni kuuluu nyt, kuinka voin kopioida tiedostoja järjestelmästä toiseen?
Oletetaan, että ympäristössäni on kaksi järjestelmää, kuten System A
ja System B
. Minä” käytän konetta System A
ja jotakin muuta System B
kone.
Kuinka voin kopioida tiedoston tiedostosta System B
tiedostoon System A
? Ja kopioi tiedosto tiedostosta System A
tiedostoon System B
?
Kommentit
- Minusta
scp
on usein kuurakivi. Jos se sopii tarpeisiisi, kokeile tätä linuxjournal.com/article/8904 . Se asentaa etätiedostojärjestelmän paikallisesti. - @Alan Mielestäni tarkoitat ” hankalaa ”? Cumber Stone on Magic -kortti;)
- jonkin verran liittyvä: tee salattu arkisto paikallisen
dir/
etäkoneella käyttämällässh
:tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
- Jos sinulla on pääsy etäpalvelimen ftp: hen, voimme myös käyttää wget -sovellusta lataamaan esimerkiksi
$wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to
Viite1 Viite2 - Ei kaksoiskappale, linkitetty kysymys pyytää nimenomaan olemaan käyttämättä
scp
; tälle yhdellescp
on hieno ja helpoin tapa vastata, joten poista moduulit kaksoiskappale, ikään kuin joku menisi toiseen, hyödyllisin vastaus jää väliin.
Vastaa
Syntaksi:
scp <source> <destination>
kopioi tiedosto tiedostosta B
tiedostoon A
, kun olet kirjautuneena B
:
scp /path/to/file username@a:/path/to/destination
Tiedoston kopioiminen tiedostosta B
tiedostoon A
kirjautuneena sisään A
:
scp username@b:/path/to/file /path/to/destination
kommentit
Vastaa
Jos tarvitset vaihtoehtoista lähestymistapaa.
Asenna sshfs. jos käytät ubuntu / debian:
sudo apt-get install sshfs
tai jos käytät centos / rhel:
sudo yum install fuse-sshfs
tai macOSissa
brew install sshfs
Luo tyhjä hakemisto
mkdir /home/user/testdir
”linkitä” tai ”liitä” molemmat hakemistot
sshfs [email protected]:/remote/dir /home/user/testdir
”poista linkitys” dir-tiedostoista
fusermount -u /home/user/testdir
BSD: llä ja macOS: lla tiedostojärjestelmän irrottaminen:
umount mountpoint
tai
diskutil unmount mountpoint
Lisätietoja on täällä: linuxjournal.com libfuse / sshfs
Kommentit
- Kysymyksessä todetaan nimenomaisesti, että kyseinen käyttöjärjestelmä on CentOS; ei Debian-johdettu.
apt-get
on debianismi; oikea paketinhallinta olisiyum
tai CentOS: n todella vanhojen makujen tapauksessaup2date
tairpm
. - +1 tähän kysymykseen annettu vastaus saattaa olla poissa kontekstista, mutta se auttoi silti minua, ja sikäli kuin näen, myös muita.
- Ei sukua, mutta se ’ miljoonan dollarin vastaus xD
- Jos ymmärrän oikein, tämä antaa etätiedostoille pääsyn, mutta ei kopioi niitä?
- @ ToolmakerSteve olet ’ täysin oikeassa: se luo väärennetyn hakemiston (kiinnityksen), jotta voit kopioida tai siirtää asioita haluamallasi työkalulla:
cp
,mv
,rm
,rsync
,unison
…scp
-komento pystyy vain kopioimaan tiedostoja.
Vastaa
Joskus sinun täytyy saada fantasia tervan kanssa:
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 -
kommentit
- Luovuus? Näin käytimme nauha-asemien jakamista. 🙂
- Voitteko kertoa meille, mitä tämä tekee? Esimerkiksi minulla ei ole aavistustakaan mitä ’ cron ’ on tekemisissä tiedoston kopioinnin kanssa!
- @aliqandil opt / widget etc / widget etc / cron.d / widget etc / init.d / widget ovat yksittäisiä tiedostoja, jotka lisätään tar-arkistoon. Tarkoituksena oli havainnollistaa, miksi sinun täytyy joskus saada fancy. Tämä komentosarja lähettää tar-arkiston ssh-yhteyden kautta ja purkaa sen arkiston toisella puolella. Tar-arkistoa ei siis koskaan kirjoiteta levylle. Käytän tätä joskus kirsikan poimintatiedostoihin, jotka haluat kopioida yhdellä komennolla.
- Ow! Opetin, että ensimmäinen ’ / ’ oli lähdepolku! (Mikä se on?) Joten se oli typerä kysymys! Kiitos. 🙂
- Terva hakeutuu osoitteeseen ” / ”, joten kaikki seuraavat polut ovat suhteessa ryhmään ” / ”.
vastaus
Jos haluat pitää molempien järjestelmien tiedostot synkronoituna, katso rsync
-ohjelmaa:
Kommentit
- Tämä on todellinen ammattityökalu.
Vastaa
Jos sinulla on jokin yleisimmistä käyttöjärjestelmistä, voit asentaa pigz-version, joka on sama kuin gzip, paitsi että se käyttää useita ytimiä ja ole nopeampi nopeassa verkossa. Komentoni on hieman erilainen.
tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S"
tai muu tapa saada tiedostoja
ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S
tai varmuuskopioi juurihakemistot
ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz
Kommentit
Vastaa
Yksinkertaisempi menetelmä, joka toimii SSH-ohjattujen NVIDIA Jetson -tietokoneiden kautta, on muodostaa yhteys SFTP: hen (SSH File Transfer Protocol).
Oletetaan, että haluan siirtää asiakirjan UFO_blueprint.odt
NASA: n etäpalvelimista ja siirrä se omiin asiakirjoihini.
-
cd
mihin haluat tallentaa tiedoston
$ cd Documents
- Yhdistä
$ sftp sammy@your_server_ip_or_remote_hostname
- Siirry hakemistoon, joka sisältää siirrettävän tiedoston.
$ cd NASA/secret_files/
- Siirrä
$ get UFO_blueprint.odt
Saadaksesi koko hakemiston, käytä sen sijaan
$ get -r secret_files/
Kommentit
- käytä
put
-komento tiedostojen lataamista varten
Vastaus
Rekursiivinen Unix / Linux-kopio tiedostoista ja kansioista suojatun kuoren päällä käyttämällä seuraavaa koodia:
scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path>
Koko esimerkki saattaa näyttää tältä:
scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Huomaa, että jos sinulla ei ole DNS-palvelinta isäntänimien selvittämiseen, käytä sen sijaan IP-osoitettasi. Yllä oleva esimerkki saattaa näyttää tältä
scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects
Vastaa
Jos he ovat käynnissä SCP / SSH eri portissa, varmista, että olet määrittänyt isojen kirjainten -P
porttiasetuksen.
Esimerkki:
scp -P 7121 /users/admin/downloads/* [email protected]:/home/
kommentit
- Tämä kysymys on seitsemän vuotta vanha ja siihen on paljon vastauksia jo. Vaikka on totta, että ssh voi käyttää muita kuin oletusportteja ja ssh-asiakas ’ s
-P
-vaihtoehto vaaditaan, et ’ ei todellakaan auta käsillä olevaa ongelmaa. Yritä keskittyä viimeaikaisiin kysymyksiin.
scp
-toimintoa kopioidaksesi tiedosto paikalliselle koneellesi tai paikalliselle koneellesi (järjestelmä A), kun olet kirjautunut etäpalvelimeen (järjestelmä B)ssh
-merkillä.scp
kirjaa sinut etäpalvelimeen, kopioi tiedoston ja kirjaa sinut sitten ulos yhdessä prosessissa, joten suorita se vain paikallisen koneesi kuoresta. Tästä huolimatta voit käyttääscp
-toimintoa, jos ’ kirjaudut uudelleen järjestelmään B SSH: n kautta ja haluat kopioida tiedostoja järjestelmän B ja järjestelmän välillä. C.-P
määrittää etäisännän TCP-portti. Tämä saa minut kiinni joka kerta, koskassh
käyttää-p
.