相关文章推荐
坐怀不乱的跑步机  ·  SQLite Insert empty ...·  2 周前    · 
体贴的麦片  ·  JMeter and remote ...·  1 周前    · 
强悍的毛衣  ·  WildFly 11 - Roles ...·  1 周前    · 
率性的红酒  ·  Set Default Values in ...·  6 天前    · 
魁梧的烈马  ·  管理事务 - Amazon Redshift·  2 天前    · 
欢快的四季豆  ·  TypeError: ...·  1 年前    · 
非常酷的匕首  ·  docker逃逸总结 - ...·  2 年前    · 
毫不奇怪,WinSCP提供了命令。 你通常使用 "WinSCP.exe",但 "WinSCP.com "也可以使用。 你几乎不会在快捷方式目的地中看到 "C:\Program Files (x86)\WinSCP "文件夹,因为你通常基本上是从快捷方式中打开它,但如果你看一下快捷方式目的地,"WinSCP.com "也应该存放在那里。 这是该工具的创建地。

  • 什么是WinSCP命令?
  • 1-1. 你可以做什么。
  • 1-2. 你不能做什么。
  • 自动下载工具
  • 2-1. 使得
  • 2-2. 实施准备
  • 2-3. 实施
  • 自动上传工具
  • 3-1. 使得
  • 3-2. 实施准备
  • 3-3. 实施
  • 其他可能经常使用的命令
  • 4-1. 密钥认证
  • 4-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
    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

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

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

    2-2. 实施准备

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

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

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

    '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

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

    3-2. 实施准备

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

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

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

    '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

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

    5. 摘要

    已经介绍了WinSCP命令。

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

    谢谢你一直看到最后。