Zalogowałem się do systemu za pomocą ssh i w obu systemach nie ma scp. Jak skopiować plik bez korzystania z programu scp.
rsync
?
ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
Zalogowałem się do systemu za pomocą ssh i w obu systemach nie ma scp. Jak skopiować plik bez korzystania z programu scp.
rsync
?
ssh user@remotehost cat /path/to/remote/file > /path/to/local/file
Odpowiedzi:
Aby wysłać plik:
cat file | ssh ajw@dogmatix "cat > remote"
Lub:
ssh ajw@dogmatix "cat > remote" < file
Aby otrzymać plik:
ssh ajw@dogmatix "cat remote" > copy
cd /tmp; cat /bin/bash > test; chmod a+x test; diff test /bin/bash; ./test
wszystko działa dobrze. W plikach binarnych nie ma z natury nic „magicznego”. Oba pliki w moim przykładzie są identyczne i mają tę samą sumę kontrolną. To prawda, że kopiowanie i wklejanie z okna terminala nie będzie działać z powodu takich rzeczy, jak sekwencje kontrolne i znaki niedrukowalne, ale przy użyciu takich potoków nigdy nie zbliżają się one do terminala.
>
do plików o tej samej nazwie?
tar
do miksu. tar cvf - /path/*.jpg | ssh foo@bar.com "tar xvf -"
lub coś podobnego powinno działać.
pv file | ssh ajw@dogmatix "cat > remote"
Możesz użyć xxd
i niektórych brzydkich cytatów, aby skopiować wiele plików, a także uruchamiać na nich polecenia i wykonywać je:
ssh -t foo@bar.com "
echo $'"$(cat somefile | xxd -ps)"' | xxd -ps -r > "'somefile'"
chmod +x somefile
echo $'"$(cat someotherfile | xxd -ps)"' | xxd -ps -r > "'someotherfile'"
chmod +x someotherfile
./somefile
./someotherfile
"
Oprócz przesłania pliku do pilota cat
, możesz również użyć klienta SFTP do przesłania plików.
python3 -m http.server
w tym samym katalogu z wybranego pliku - po tym można curl
albo wget
lub pobrać plik przeglądarce. Zauważ, że po uruchomieniu tego polecenia wszystkie twoje pliki z bieżącego katalogu będą publicznie dostępne, dopóki nie naciśniesz Ctrl+ C.