Unix 通过检测文件运行的shell脚本

Unix 通过检测文件运行的shell脚本,unix,shell,scripting,Unix,Shell,Scripting,我在unix上工作。 我想写一个shell脚本,它将检查windows上名为“temp_file.txt”的文件 然后执行一些命令。 这可能吗 我们如何连接到windows并转到特定目录并检查文件?您可以在windows上设置SSH,然后使用SSH客户端在Unix上编写脚本以连接到windows并执行命令。另一种方法是,如果您负担得起的话,编写一个windows批处理,并在windows本身上执行您的命令。或者,您可以打开Windows终端服务,并使用Unix中的telnet协议发出该命令。支持

我在unix上工作。 我想写一个shell脚本,它将检查windows上名为“temp_file.txt”的文件 然后执行一些命令。 这可能吗


我们如何连接到windows并转到特定目录并检查文件?

您可以在windows上设置SSH,然后使用SSH客户端在Unix上编写脚本以连接到windows并执行命令。另一种方法是,如果您负担得起的话,编写一个windows批处理,并在windows本身上执行您的命令。或者,您可以打开Windows终端服务,并使用Unix中的telnet协议发出该命令。支持telnet的编程语言包括Perl()和Python()

您可以在Windows上设置SSH,然后使用SSH客户端在Unix上编写脚本以连接到Windows并执行命令。另一种方法是,如果您负担得起的话,编写一个windows批处理,并在windows本身上执行您的命令。或者,您可以打开Windows终端服务,并使用Unix中的telnet协议发出该命令。支持telnet的编程语言包括Perl()和Python()

使用“常规”Windows文件共享工具共享Windows计算机上的目录。在Linux端,您有两个选项:

  • 用于连接到Windows计算机并检查文件是否存在

  • 用于将共享目录装入Linux文件系统,并使用“标准”Linux命令(例如
    test
    )检查文件是否存在

  • 具体的实现细节将取决于您使用的脚本语言,但您的伪代码将如下所示:

    loop:
        check if file exists
        if yes: do something useful
        sleep for some reasonable time
    

    (我假设您希望在Linux机器上执行命令。)

    使用“常规”Windows文件共享工具共享Windows机器上的目录。在Linux端,您有两个选项:

  • 用于连接到Windows计算机并检查文件是否存在

  • 用于将共享目录装入Linux文件系统,并使用“标准”Linux命令(例如
    test
    )检查文件是否存在

  • 具体的实现细节将取决于您使用的脚本语言,但您的伪代码将如下所示:

    loop:
        check if file exists
        if yes: do something useful
        sleep for some reasonable time
    

    (我假设您希望在Linux机器上执行命令。)

    正如ghostdog74所建议的,ssh是您最好的选择。您可以运行这样的操作(我假设您安装了Cygwin或SFU)

    如果您的命令登录到stdout,那么您也可以在Linux机器上获得该日志


    如果设置私钥身份验证,效果会更好。

    正如ghostdog74所建议的,ssh是最好的选择。您可以运行这样的操作(我假设您安装了Cygwin或SFU)

    如果您的命令登录到stdout,那么您也可以在Linux机器上获得该日志

    如果您设置私钥身份验证,效果会更好。

    如果您使用的是Linux(您指定您使用的是Unix,但不是什么变体),请查看
    inotify
    API--这将允许您为文件系统事件设置事件响应程序(比轮询更有效)

    在shell脚本中,您可以使用
    inofitywait
    命令--有关更多信息,请参阅。

    如果您使用的是Linux(您指定使用的是Unix,但不是什么变体),请查看
    inotify
    API--这将允许您为文件系统事件设置事件响应程序(比轮询效率高得多)


    在shell脚本中,您可以使用
    inofitywait
    命令---有关更多信息,请参阅。

    在同一系统上,或在联网系统上?在同一系统上,或在联网系统上?