如何使用WinSCP命令创建一个自动文件下载和上传工具。


出版日期:2020年12月9日。



INFOMARTION > 如何使用WinSCP命令创建一个自动文件下载和上传工具。

概述。

使用WinSCP命令创建一个自动文件下载和上传工具。 使用命令提示符执行WinSCP提供的命令。 毫不奇怪,WinSCP提供了命令。 你通常使用 "WinSCP.exe",但 "WinSCP.com "也可以使用。 你几乎不会在快捷方式目的地中看到 "C:\Program Files (x86)\WinSCP "文件夹,因为你通常基本上是从快捷方式中打开它,但如果你看一下快捷方式目的地,"WinSCP.com "也应该存放在那里。 这是该工具的创建地。

目录

  1. 什么是WinSCP命令?
  2. 自动下载工具
  3. 自动上传工具
  4. 其他可能经常使用的命令
  5. 摘要

1. 什么是WinSCP命令?

WinSCP命令是一个允许你执行你通常在GUI中执行的WinSCP操作的命令。 这种操作,你通常会在屏幕上操作,通过命令的方式进行。

1-1. 你可以做什么。

你可以下载和上传文件,创建文件夹,调用shell命令和许多其他东西。

可能经常使用的命令包括。

open・・・用于连接。

get・・・用于下载文件。

put・・・用于上传文件。

exit・・・用于切割。

1-2. 你不能做什么。

基本的文件下载和上传是可能的,但使用该系统后,似乎很难控制细节。

例如,"检查一个文件的更新日期并获取一个具有指定更新日期的文件 "似乎很难做到。

如果你想给要操作的文件附加复杂的条件,你可以用 "调用 "命令调用shell,这可以用Windows命令、Linux命令等来实现。

2. 自动下载工具

我们希望创建一个工具,能够真正自动下载放置在Linux服务器上的日志。

2-1. 使得

创建一个具有以下条件的工具。

・Windows 10作为执行环境。

・要收购的服务器是Linux。

・IP地址为192.168.50.10。

首先,创建一个bat文件作为激活的起点。

file_get.bat


@setlocal enabledelayedexpansion
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
@mkdir %FOLDER%
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

除了最后一行,其余的过程都是Windows命令。 内容。

@setlocal enabledelayedexpansion

延迟的环境变量的设置。 简而言之,这种描述可以防止为一个变量设置一个可能不会被反映的值。

@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%

从当前时间获取yyymmddhmmss,最后将其放入FOLDER变量的过程。

@mkdir %FOLDER%

在执行批处理的文件夹下直接创建一个文件夹'yyyymmddhmmss'。

@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

WinSCP.com(WinSCP命令)。 执行时,在批处理文件存放的同一文件夹中执行 "ftp.txt "中列出的命令。 传递你刚刚创建的文件夹路径作为参数。

这样就完成了调用者文件的创建。 然后在 "ftp.txt "中描述了WinSCP命令。

ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit

内容。

option batch on

对于需要查询的流程,系统会自动假定选择了 "否",并自动执行该流程。 如果你包括这个,它将自动覆盖任何重复的文件名。 (你可以创建一个文件夹 "yyyymmddhmmss",把文件放在那里,这样就不会出现重复的文件名了。)

option transfer binary

该设置是以二进制模式传输数据。

open test:testpassword@192.168.50.10

'username:pass-word@IP address'. 连接到IP地址 "192.168.50.10"。

get /var/log/httpd/access_log %1%\

将'/var/log/httpd/access_log'存储在'yyyymmddhhmmss'文件夹中。('%1%'是file_get.bat中传递的参数。)

也可以使用正则表达式,所以如果你写"/var/log/httpd/*",整个日志都可以被检索到。

close
exit

这是一个断开连接的过程。

这样就完成了该工具的创建。

2-2. 实施准备

在执行前要进行初步的指纹鉴定。

如果该服务器从未通过WinSCP连接过,你会被问到是否可以安全连接。 如果你按下 "是",就会在一个叫做Windows注册表区域的地方留下按 "是 "的记录。 这确保了系统不会被第二次检查。 在运行该工具时,有必要提前进行,并在注册表区域保存有关服务器的信息,以确保安全连接,因此在命令提示符下运行以下命令。

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒系统提示你作出反应,输入 "Y"。
close
exit
exit

'test:testpassword@192.168.50.10'应替换为'username:password@IP address'。

这样就完成了初步准备工作。

2-3. 实施

最后,现在是实施的时候了。 双击 "file_get.bat"。

如果创建了 "yyyymmddhhmmss "文件夹并将日志保存在该文件夹中,则成功。

3. 自动上传工具

下一步是创建一个工具,把文件放在Linux服务器上。 基本结构将与下载工具相同。

3-1. 使得

创建一个具有以下条件的工具。

・Windows 10作为执行环境。

・目标服务器是Linux。

・IP地址为192.168.50.10。

首先,创建一个bat文件作为激活的起点。

file_put.bat


@setlocal enabledelayedexpansion
@set FOLDER_NAME="put_files\*"
@set FOLDER=%~dp0%FOLDER_NAME%
@set PUT_FOLDER="/tmp/"
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0put_ftp.txt /parameter %FOLDER% %PUT_FOLDER%

由于在自动下载工具中已经解释过了,所以省略了一点解释,但过程是将文件存储在'put_files'文件夹中,在'/tmp/'执行批处理文件的同一文件夹中。 实际的存储过程在 "put_ftp.txt "中描述。

put_ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit

"put %1%\ %2%"命令根据作为参数传递的 "源文件 "和 "目标文件夹 "上传文件,尽管省略了一点解释,因为这在自动下载工具中也有解释。

3-2. 实施准备

与自动下载工具一样,指纹在执行前会被提前检查。(如果自动下载工具已经运行过一次,则不需要。)

在命令提示符下执行以下命令。

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒系统提示你作出反应,输入 "Y"。
close
exit
exit

'test:testpassword@192.168.50.10'应替换为'username:password@IP address'。

这样就完成了初步准备工作。

3-3. 实施

最后,现在是实施的时候了。 双击 "file_put.bat"。

如果存储在'put_files'中的文件被转移到'/tmp/'文件夹,则成功。

4. 其他可能经常使用的命令

我们已经介绍了基本的下载和上传,但还想介绍其他可能经常使用的命令。

4-1. 密钥认证

早些时候,你根据以下描述用密码认证登录。

open test:testpassword@192.168.50.10

'open username:password@IP address'. 对于密钥认证,适用于以下情况。

open test@192.168.50.10 -privatekey=id_rsa.ppk

'-privatekey=id_rsa.ppk'是钥匙的路径。 由于它被列为相对路径,因此假定密钥(id_rsa.ppk)也在可执行文件(bat文件)所在的文件夹中。 例如,如果钥匙直接位于C盘下,写"-privatekey=C:\id_rsa.ppk"。

4-2. 呼叫外壳

要通过WinSCP命令调用shell,请按以下方式编写。

option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit

test.sh'被'call sh /tmp/test.sh'执行。 也可以传递参数。 当传递参数时,写成 "call sh /tmp/test.sh param1"。

5. 摘要

已经介绍了WinSCP命令。

如果你通常每天使用WinSCP GUI来记录和上传文件,你可以通过创建本文所述的工具来实现自动化。 这可能是一个小任务,但会占用很多时间,除非是每天都做。 我们鼓励你创造工具来提高效率。

谢谢你一直看到最后。




■INFORMATION

请点击这里,进入信息首页。


■PROFILE

请点击这里查看简介。


■联系方式。

有关文章的查询,请在此与我们联系。