长话短说......我们有多个服务器,我们每晚都在其上运行 perflog 监控。我的工作是将这些日志转换为 .csv 格式并将它们发送到我的电子邮件。
这一点已经通过前员工编写的 .sh 脚本实现了自动化。
我想要自动化的是在 perfmon 日志记录之后运行批处理作业,以查看特定文件夹并找到最新的 .blg 文件并在其上运行 sh 脚本(该脚本称为上传),这样我就不必登录进入每个服务器并手动执行。
e.g.
上传 myInitials cd /cygdrive/someLocation/logs/$latestFile$.blg
myInitials 和位置可以是硬编码的...我只是不知道如何在文件夹中找到最新的文件并通过批处理文件将其自动化。
任何指示都会非常有帮助!
@杰里米:
抱歉,我可能应该在问题中提到服务器正在运行 2003 年和 2008 年。
我不认为绝对有必要在文件夹上注册更改通知 - 如果日志从中午运行到早上 7 点,脚本将立即运行(您可以设置一个脚本在 perfmon 日志运行后运行)在日志属性中完成),因此日志几乎肯定是文件夹中的最新文件。
就像我说的,我已经有一个 .sh 文件可以转换为 csv 并发送到我的电子邮件,我只需要把它合并到一个批处理文件中,这样我就不用去每个服务器并打开 cygwin并输入 upload xx /cygdrive/location/logs/xyz.blg,我可以让它在日志完成后自动运行,而无需通过 RDC 进入它。
感谢您的投入!
如果您有一个 Shell 脚本,并且您的工作是从 Windows 批处理文件调用该 shell 脚本,那么这将起作用。这假设 cygwin 安装在 C:
start_cyg.bat 的内容
@echo off
set PATH=%PATH%:"C:\Cygwin\bin"
rem bash --login -i
bash "/cygdrive/d/cyg.sh"
cyg.sh 的内容
#!/bin/bash
TAIL=`ls -lrt | tail -1`
echo "TAIL:$TAIL"
如果您从 Windows 命令提示符调用 start_cyg.bat,您可以在控制台中获取 cyg.sh 的输出
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)