Я могу передать файлы с помощью SSH?

GNU date имеет точность наносекунды через %N.

every=3     # test every n'th itteration 
bsecs=0.95  # break at secs (float)
bnano=$(printf '%0.9f' "$bsecs"); bnano=${bnano/./};  
# avoid lead '0' octal clash when time slice < 1 sec
shopt -s extglob; bnano=${bnano#+(0)}  

tprev=$(date +%s%N)
for i in {1..24} ;do  # just a test loop

  if ((i%every==1)) ;then
    tnow=$(date +%s%N)
    if ((tnow-tprev>=bnano)) ;then 
        echo "Auto Break!  $every itteratons took longer than $bsecs secs"
        break
    fi
    ((tprev=tnow))
  fi
  # do something, eg sleep for testing
  sleep 1.$i; echo $i
done
32
13.02.2015, 07:50
6 ответов

Используйте инструмент PSCP от страницы загрузки шпаклевки:

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

PSCP является версией шпаклевки scp, который является CP (копия) по команде ssh.

PSCP должен быть установлен на Вашем компьютере окон (просто загруженный, действительно, нет никакого процесса установки. В разделе Packaged Files pscp.exe уже включен). Ничто не должно быть установлено на серверах школы. PSCP и scp оба использования ssh для соединения.

Отвечать на вопрос использования из комментариев:

Загружать с Вашего компьютера на удаленный сервер:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path

Это загрузит файл file.txt на указанный каталог на сервере. Если заключительная часть целевого пути НЕ будет каталогом, то это будет новое имя файла. Вы могли также сделать это для загрузки файла с другим именем:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path\newname.txt

Загружать файл с удаленного сервера на Ваш компьютер:

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\

или

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\newfile.txt

или

c:\pscp user@remote:\home\user\some\file.txt .

С одинокой точкой в конце там. Это загрузит указанный файл на текущий каталог.

Так как комментарий слишком далеко снижается, я должен также указать здесь, что WinSCP существует, обеспечивая GUI для всего этого, если это представляет интерес: http://winscp.net/eng/download.php

42
27.01.2020, 19:37
  • 1
    я ничего не могу установить на университетских компьютерах, конечно. Я должен? –  Alex Mohr 28.09.2013, 01:39
  • 2
    Являются окна 7 машинами Ваш или Ваши школы? Я считал вопрос предположить, что Ваш используют шпаклевку на Вашем компьютере для соединения со школой. Если это так, затем Вы ничего не должны устанавливать на компьютере школы, но Вы должны будете на Вашем. –  SuperMagic 28.09.2013, 01:40
  • 3
    я использую свои окна 7 машин.спасибо! Я нашел команду wget, и я использовал Dropbox для передачи файла, но я буду иметь это в виду наверняка –  Alex Mohr 28.09.2013, 01:42
  • 4
    Еще одна вещь: scp работает оба пути. Можно загрузить, а также загрузить им. –  SuperMagic 28.09.2013, 01:44
  • 5
    я испытываю немного затруднений из-за синтаксиса команды. Это: pscp source "path_to_local_file" user@host:path_to_new_location ? Я заставил это работать с отъездом пути на удаленном пробеле машины, это просто поместило его в мой корневой каталог. –  Alex Mohr 28.09.2013, 01:49

Вам, возможно, придется использовать прямые косые черты (/) для разговора с серверами LINUX/UNIX

c:\pscp c:\some\path\to\a\file.txt user@remote:/home/user/some/path
6
27.01.2020, 19:37

Вы можете просто Ball много файлов с помощью TAR :

tar -cz . | ssh me@school -- 'tar -C/path/to/target/dir -xz'

:

tar -cz . | ssh me@school -- 'tar -C/path/to/target/dir -xz'

... который будет рекурсивно сжать и поток всех файлов в текущем каталоге на локальном компьютере к целевому пути, одновременно без рассмотрения и расширяя поток на удаленной машине.

Вы можете сделать подобные вещи для всего, что пишет на Stdout. CAT является очевидным выбором:

cat ./localfile | ssh user@remote 'cat >./remotefile'
3
27.01.2020, 19:37

Для этого можно использовать WinSCP . Это намного проще, чем другие перечисленные инструменты, он обеспечивает простой интерфейс перетаскивания.

2
27.01.2020, 19:37

вы можете использовать Windows PowerShell (на самом деле это команда OpenSSH, ее можно использовать и в любой ОС UNIX):

scp -P <non-default target ssh port> "<source file>" <username>@<hostname/address>:<destination path>

Флаг

-Pможет быть опущен, если ssh открыт на порту по умолчанию (22)

поменять местами локальный и удаленный пути для копирования файла с удаленного хоста

напр.:

  • копирование файла "ps.key" через ssh
  • локальная ОС — Windows 10
  • удаленный адрес 192.168.88.242, ssh (демон )работает на порту 1688
  • удаленное имя пользователя "псевдоним"

команда:

локальный (win )-> удаленный (unix):

scp -P 1688 "D:\MEGA\ps.key" nick@192.168.88.242:/home/nick/ps.key

удаленный ->локальный (копировать с удаленного хоста):

scp -P 1688 nick@192.168.88.242:/home/nick/ps.key "D:\MEGA\ps.key"

После этого вы должны подтвердить отпечаток целевого ключа (, если вы ранее не подключались к этому хосту через PowerShell )и аутентифицировать себя на удаленном хосте (ввести пароль пользователя или пароль ключа ssh -, если агент ssh -не используется ).

должен работать на win10 без каких-либо установок, так как там -встроен OpenSSH

8
27.01.2020, 19:37

Так как вы уже знакомы с замазкой. Я предлагаю вам взглянуть наhttps://mobaxterm.mobatek.net/. В MobaXterm есть все необходимое для удаленной работы в Linux с компьютера под управлением Windows, включая ssh, sftp, scp, Xwindows. На мой взгляд, это намного лучше, чем шпаклевка.

1
27.01.2020, 19:37

Теги

Похожие вопросы