Я хочу подключиться к Linux-машине с WinSCP (командная строка) из Windows. и я хочу получить логи.
В Linux-машине есть логи
/var/log/application/
090701.log
090702.log
090703.log
090704.log
090705.log
winscp sftp: // account: pass @ machine: 22 Как эффективно получать журналы?
Если вы используете сценарии, я думаю, вам пора прочитать документацию по WinSCP. В прошлый раз, когда я смотрел, там были примеры, которые показывают, как именно делать то, что вы хотите.
Конечно, если вы используете графический интерфейс, просто перетащите их в свои папки Windows в интерфейсе WinSCP.
У меня есть аналогичное решение с использованием сценария winscp, мое выглядит так:
Скрипт winscp:
option batch continue
option confirm off
open logs:*******@10.x.x.x
synchronize remote "c:\daily_logs\*" ./81/
synchronize remote "c:\daily_logs\" ./81/
close
exit
Я использую iCronService, который работает во всех версиях окон, в которых я его пробовал, включая версии на базе x64, и вот как выглядит мой crontab:
crontab:
00 22 * * * cmd /c "winscp /console /script=c:\bin\scplogs /log=LOG_OF_SCP.LOG"
Можно также сначала сжать журналы, чтобы сэкономить время, пропускную способность и пространство. Конечно, это не самое элегантное решение, потому что пароль жестко закодирован в scp-скрипте, но при желании его можно заменить ключами.
Вы также можете использовать psftp.exe чтобы выполнить задание с помощью командной строки, подобной этой:
psftp.exe username@server -be -pw user_password -b c:\script.txt"
Script.txt может содержать, например:
lcd c:\my_backup get /var/log/application/*