【发布时间】:2010-02-02 08:53:11
【问题描述】:
我正在研究 unix。 我想编写一个 shell 脚本来检查 Windows 上名为“temp_file.txt”的文件 然后执行一些命令。 这可能吗?
我们如何连接到 windows 并转到特定目录并检查文件?
【问题讨论】:
-
在同一系统上,还是在联网系统上?
我正在研究 unix。 我想编写一个 shell 脚本来检查 Windows 上名为“temp_file.txt”的文件 然后执行一些命令。 这可能吗?
我们如何连接到 windows 并转到特定目录并检查文件?
【问题讨论】:
【讨论】:
如果您使用的是 Linux(您指定您使用的是 Unix,但不是什么变体),请查看 inotify API --- 这将允许您为文件系统事件设置事件响应器(更多比轮询更有效)。
在 shell 脚本中,您可以使用 inofitywait 命令 --- 请参阅 http://linux.die.net/man/1/inotifywait 了解更多信息。
【讨论】:
您可以在 Windows 上设置 SSH,然后使用 SSH 客户端在 Unix 上编写脚本以连接到 Windows 并执行命令。如果您负担得起,另一种方法是编写一个 Windows 批处理,并在 Windows 本身上执行您的命令。或者您可以打开 Windows 终端服务,并使用 Unix 的 telnet 协议来发出命令。支持 telnet 的编程语言包括 Perl (Net::Telnet) 和 Python(telnetlib)
【讨论】:
正如 ghostdog74 建议的那样,ssh 是您最好的选择。你可以运行类似的东西(我假设你已经安装了 Cygwin 或 SFU)
ssh "[ -e $file ] && do_something.sh" > do_something.log
如果你的命令记录到标准输出,你的 Linux 机器上也会有日志。
如果你设置了私钥认证,它会变得更好。
【讨论】: