实现文件服务器跟踪客户端情况
时间:2007-12-26 来源:yuanjqiu
需求:
针对公司VSS备份出错,提出了跟踪晚上下班末关机的客户端及登录情况.
解决问题:
时间紧,条件有限.服务器为windows 2k AS(日文)。采用shell写一个bat文件,挂在服务器端利用AT命令实现上述事件的功能.
设计方案:
一个IP列表:pingip.lst;一个ip测试列表:pingipbak.lst、tempip.lst。
一个shell文件:pingtest.bat;一个shell外挂:timeping.bat
二个结果输出文件:pingok.txt;pingout.txt
pingtst.bat内容:
@echo off
echo.
if exist pingok.txt del pingok.txt
if exist pingout.txt del pingout.txt
if not exist pingip.lst (
echo 错误:当前目录不存在ip列表文件(pingip.lst),请检查!
echo "error: ip list file(pingip.lst) is not found in current directory ,please check!"
goto endbatch
)
echo.>pingok.txt
echo.>pingout.txt
echo 开始时间(start time)
time/t
echo.
echo 处理中,请稍等(processing , please wait...)
for /F %%i in (pingip.lst) do (
set tofound=
ping -a -n 1 %%i > tempip.txt
for /F %%f in (tempip.txt) do (
if "%%f" == "Request" (
echo %%i timeout>>pingout.txt
set tofound=1
)
) if not defined tofound (
echo ping %%i log:>>pingok.txt
echo *************************START********************************>>pingok.txt
type tempip.txt>>pingok.txt
echo *************************END**********************************>>pingok.txt
echo.>>pingok.txt
echo.>>pingok.txt
) timeping.bat内容:
cd "C:\Documents and Settings\admin\桌面\BATCH" call pingtest.bat 然后在服务器的终端上进行: C:\Documents and Settings\admin>at 14:50 /every:sunday "C:\Documents and Setting
s\admin\桌面\BATCH\timeping.bat"
新加了一项作业,其作业 ID = 1 C:\Documents and Settings\admin>at 14:50 /every:Monday "C:\Documents and Setting
s\admin\桌面\BATCH\timeping.bat"
新加了一项作业,其作业 ID = 1 C:\Documents and Settings\admin>at 14:50 /next:Monday "C:\Documents and Settings
\admin\桌面\BATCH\timeping.bat"
新加了一项作业,其作业 ID = 2 C:\Documents and Settings\admin>at
状态 ID 日期 时间 命令行
-------------------------------------------------------------------------------
1 每月执行日期: 星期一 14:50 "C:\Documents and Settings\adm
in\桌面\BATCH\timeping.bat"
2 下月执行日期: 星期一 14:50 "C:\Documents and Settings\adm
in\桌面\BATCH\timeping.bat" C:\Documents and Settings\admin>at 2007-12-28 02:00 /interactive "C:\Documents a
nd Settings\admin\桌面\BATCH\timeping.bat"
附后AT使用帮助文档说明: AT 命令安排在特定日期和时间运行命令和程序。
要使用 AT 命令,计划服务必须已在运行中。 AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command" \\computername 指定远程计算机。 如果省略这个参数,
会计划在本地计算机上运行命令。
id 指定给已计划命令的识别号。
/delete 删除某个已计划的命令。如果省略 id,
计算机上所有已计划的命令都会被删除。
/yes 不需要进一步确认时,跟删除所有作业
的命令一起使用。
time 指定运行命令的时间。
/interactive 允许作业在运行时,与当时登录的用户
桌面进行交互。
/every:date[,...] 每个月或每个星期在指定的日期运行命
令。如果省略日期,则默认为在每月的
本日运行。
/next:date[,...] 指定在下一个指定日期(如,下周四)运
行命令。如果省略日期,则默认为在每
月的本日运行。
"command" 准备运行的 Windows NT 命令或批处理
程序。
if exist pingok.txt del pingok.txt
if exist pingout.txt del pingout.txt
if not exist pingip.lst (
echo 错误:当前目录不存在ip列表文件(pingip.lst),请检查!
echo "error: ip list file(pingip.lst) is not found in current directory ,please check!"
goto endbatch
)
echo.>pingok.txt
echo.>pingout.txt
echo 开始时间(start time)
time/t
echo.
echo 处理中,请稍等(processing , please wait...)
for /F %%i in (pingip.lst) do (
set tofound=
ping -a -n 1 %%i > tempip.txt
for /F %%f in (tempip.txt) do (
if "%%f" == "Request" (
echo %%i timeout>>pingout.txt
set tofound=1
)
) if not defined tofound (
echo ping %%i log:>>pingok.txt
echo *************************START********************************>>pingok.txt
type tempip.txt>>pingok.txt
echo *************************END**********************************>>pingok.txt
echo.>>pingok.txt
echo.>>pingok.txt
) timeping.bat内容:
cd "C:\Documents and Settings\admin\桌面\BATCH" call pingtest.bat 然后在服务器的终端上进行: C:\Documents and Settings\admin>at 14:50 /every:sunday "C:\Documents and Setting
s\admin\桌面\BATCH\timeping.bat"
新加了一项作业,其作业 ID = 1 C:\Documents and Settings\admin>at 14:50 /every:Monday "C:\Documents and Setting
s\admin\桌面\BATCH\timeping.bat"
新加了一项作业,其作业 ID = 1 C:\Documents and Settings\admin>at 14:50 /next:Monday "C:\Documents and Settings
\admin\桌面\BATCH\timeping.bat"
新加了一项作业,其作业 ID = 2 C:\Documents and Settings\admin>at
状态 ID 日期 时间 命令行
-------------------------------------------------------------------------------
1 每月执行日期: 星期一 14:50 "C:\Documents and Settings\adm
in\桌面\BATCH\timeping.bat"
2 下月执行日期: 星期一 14:50 "C:\Documents and Settings\adm
in\桌面\BATCH\timeping.bat" C:\Documents and Settings\admin>at 2007-12-28 02:00 /interactive "C:\Documents a
nd Settings\admin\桌面\BATCH\timeping.bat"
附后AT使用帮助文档说明: AT 命令安排在特定日期和时间运行命令和程序。
要使用 AT 命令,计划服务必须已在运行中。 AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command" \\computername 指定远程计算机。 如果省略这个参数,
会计划在本地计算机上运行命令。
id 指定给已计划命令的识别号。
/delete 删除某个已计划的命令。如果省略 id,
计算机上所有已计划的命令都会被删除。
/yes 不需要进一步确认时,跟删除所有作业
的命令一起使用。
time 指定运行命令的时间。
/interactive 允许作业在运行时,与当时登录的用户
桌面进行交互。
/every:date[,...] 每个月或每个星期在指定的日期运行命
令。如果省略日期,则默认为在每月的
本日运行。
/next:date[,...] 指定在下一个指定日期(如,下周四)运
行命令。如果省略日期,则默认为在每
月的本日运行。
"command" 准备运行的 Windows NT 命令或批处理
程序。
相关阅读 更多 +