windows中批处理文件--收集服务器日志和上传日志至文件服务器
2017-06-25 22:22
423 查看
脚本实现的功能:收集远程服务器日志并上传内网共享目录
windows批处理文件是以“.bat”结尾的文本文件,可以先创建记事本,然后再重命名为“xxx.bat”,即可双击运行,系统会调用cmd.exe来运行该文件
这是代码详解,如想复制,最下面有源码:
echo –[message]显示信息
echo off
rem 该命令只是起一个注释的作用
rem 关闭回显,如果是echo off则关闭回显,这个回显是什么意思呢?其实就是显示命令本身
rem echo off就是关闭命令本身的显示,一般调试的时候才会使用echo on
rem 获取当前时间,比较复杂,就不分析了。格式为201706252136
set date=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
rem %date%和%time%是系统内置的日期变量和时间变量
rem 复制出来的文件夹名字后缀
set Suffix=log
rem 设置IP地址用set ipx=xxx.xxx.xxx.xxx
rem 脚本支持系统盘是C盘的,写死在里面,如果不是C盘的,需要自己下面改一下参数
set ip1=192.168.XX.XX
rem ping远程IP一次,如果ping的通,拷贝日志,否则不拷贝
rem 然后写一个call(调用另一个其处理程序,并且不终止父批处理程序)调用CopyLogs 把IP地址以参数形式传入
ping -n 1 %ip1% && call :CopyLogs %ip1%
rem cmd 返回并将等待下一条命令
goto:eof
rem 拷贝日志函数块
:CopyLogs
set ipaddr=%1
set num=%ipaddr:.=_%
rem 创建远程管道链接
net use \%ipaddr% password /user:admin
echo ——-正在导出%ipaddr%的系统DUMP(蓝屏文件)——-
echo ——-这里使用了if else语句实现
if not exist \%ipaddr%\c\Windows∗.dmp(@echo不存在目录)(接上面)else(xcopy%ipaddr\Windows*.dmp “%cd%\日志目录\%date%-%Suffix%\IP_%num%\Dump\”)
set “systemLogDir=\%ipaddr%\c$\Windows\System32\winevt\Logs”
echo ——-正在导出%ipaddr%的系统日志——-
if not exist %systemLogDir%\App*.Evt* (@echo application log is not exist) else (xcopy %systemLogDir%\App*.Evt* “%cd%\%date%-%Suffix%\IP_%num%\Sys_Log\”)
echo ——-正在上传%ipaddr%的文本系统日志——-
echo ——-xcopy,相比于copy更高级一点,复制文件夹
xcopy “%cd%\%date%-%Suffix%” \192.168.xx.xx+目录 /e /y /k
rem 删除远程管道链接
net use \%ipaddr% /d /y
goto:eof
如下是源代码:
windows批处理文件是以“.bat”结尾的文本文件,可以先创建记事本,然后再重命名为“xxx.bat”,即可双击运行,系统会调用cmd.exe来运行该文件
这是代码详解,如想复制,最下面有源码:
echo –[message]显示信息
echo off
rem 该命令只是起一个注释的作用
rem 关闭回显,如果是echo off则关闭回显,这个回显是什么意思呢?其实就是显示命令本身
rem echo off就是关闭命令本身的显示,一般调试的时候才会使用echo on
rem 获取当前时间,比较复杂,就不分析了。格式为201706252136
set date=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
rem %date%和%time%是系统内置的日期变量和时间变量
rem 复制出来的文件夹名字后缀
set Suffix=log
rem 设置IP地址用set ipx=xxx.xxx.xxx.xxx
rem 脚本支持系统盘是C盘的,写死在里面,如果不是C盘的,需要自己下面改一下参数
set ip1=192.168.XX.XX
rem ping远程IP一次,如果ping的通,拷贝日志,否则不拷贝
rem 然后写一个call(调用另一个其处理程序,并且不终止父批处理程序)调用CopyLogs 把IP地址以参数形式传入
ping -n 1 %ip1% && call :CopyLogs %ip1%
rem cmd 返回并将等待下一条命令
goto:eof
rem 拷贝日志函数块
:CopyLogs
set ipaddr=%1
set num=%ipaddr:.=_%
rem 创建远程管道链接
net use \%ipaddr% password /user:admin
echo ——-正在导出%ipaddr%的系统DUMP(蓝屏文件)——-
echo ——-这里使用了if else语句实现
if not exist \%ipaddr%\c\Windows∗.dmp(@echo不存在目录)(接上面)else(xcopy%ipaddr\Windows*.dmp “%cd%\日志目录\%date%-%Suffix%\IP_%num%\Dump\”)
set “systemLogDir=\%ipaddr%\c$\Windows\System32\winevt\Logs”
echo ——-正在导出%ipaddr%的系统日志——-
if not exist %systemLogDir%\App*.Evt* (@echo application log is not exist) else (xcopy %systemLogDir%\App*.Evt* “%cd%\%date%-%Suffix%\IP_%num%\Sys_Log\”)
echo ——-正在上传%ipaddr%的文本系统日志——-
echo ——-xcopy,相比于copy更高级一点,复制文件夹
xcopy “%cd%\%date%-%Suffix%” \192.168.xx.xx+目录 /e /y /k
rem 删除远程管道链接
net use \%ipaddr% /d /y
goto:eof
如下是源代码:
echo --[message]显示信息 echo off set date=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2% set Suffix=log set ip1=192.168.xx.xx ping -n 1 %ip1% && call :CopyLogs %ip1% goto:eof :CopyLogs set ipaddr=%1 set num=%ipaddr:.=_% rem 创建远程管道链接 net use \\%ipaddr% password /user:admin if not exist \\%ipaddr%\c$\Windows\*.dmp (@echo 不存在目录) else (xcopy \\%ipaddr%\c$\Windows\*.dmp "%cd%\日志目录\%date%-%Suffix%\IP_%num%\Dump\") set "systemLogDir=\\%ipaddr%\c$\Windows\System32\winevt\Logs" if not exist %systemLogDir%\App*.Evt* (@echo application log is not exist) else (xcopy %systemLogDir%\App*.Evt* "%cd%\%date%-%Suffix%\IP_%num%\Sys_Log\") xcopy "%cd%\%date%-%Suffix%" \\192.168.xx.xx+目录 /e /y /k rem 删除远程管道链接 net use \\%ipaddr% /d /y
相关文章推荐
- PHPNow下安装ECshop后后台提示: 您的服务器设置了 open_base_dir 且没有包含 C:\WINDOWS\Temp,您将无法上传文件。 解决方法
- 【原创】AIX 、Linux 和Windows 定时上传文件到FTP服务器的配置方法
- Windows下使用xShell向阿里云ecs服务器上传文件
- 本地windows机器和远程Linux服务器之间文件传输 -- Xshell 使用sftp 上传下载文件
- Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
- 使用批处理文件在FTP服务器 上传下载文件
- Windows上传文件到centos7服务器
- windows 向linux服务器上传文件命令
- android 收集错误日志 上传服务器
- 转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
- 利用Windows Service,定时监控某一目录,发现新文件后自动上传到指定web服务器
- Windows中的文件上传到Linux的ftp服务器的方法
- windows蓝屏日志文件、dump文件收集方法
- 批处理 收集、压缩日志文件
- Windows下通过bat脚本实现自动上传文件到ftp服务器
- 您的服务器设置了 open_base_dir 下安装ECshop后后台提示: 您的服务器设置了 open_base_dir 且没有包含 C:\WINDOWS\Temp,您将无法上传文件。 解决方法
- Windows下配置ftp服务器,使用QT实现文件上传和下载
- Xshell 5+lrzsz实现Windows客户端向CentOS服务器上传文件
- 夺命雷公狗---linux NO:30 linux之通过X-Shell在windows上传文件到服务器上
- 批处理实现增拷贝文件和增量上传文件到ftp服务器