刚刚参加工作不久,项目经理把程序发布的任务交给了我,开始几天还有点新的感,不过玩久了,就那几个命令,实在没什么意思,但是还得做,都烦死了。我这个人比较懒,试了N久一个懒人工具终于弄出来了。写出来给大家分享!

------------------------------------------------------------------------------------------------------

我工作环境的配置:

开发工具:Ecplise

数据库:ORACLE10g

测试服务器:HP-UX + Weblogic9.2

由于是数十人同时开发,先由我们把自己的代码更新至CVS服务器,然后打成war包,用ftp传至测试机,解压,并且重新启动weblogic。部署到测试机下(要求测试机下需要对war包解压)。

-------------------------------------------------------------------------------------------------------

先看一下我总的工作调度脚本

FILE:autoRefresh8.bat

@echo off

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::设置10.1.18.8服务器的相关配置::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::服务器地址

set url=10.1.18.8

::远程登录的用户名,密码

set userid=weblogic

set password=weblogic

::登录的家目录

set homeDir=/weblogic

::执行shell脚本的目录及文件名

set shDir=/weblogic/syang

::解压及停止服务器的shell脚本文件名

set stopShFileName=stopAndExtract.sh

::启动服务器的shell脚本文件名

set startShFileName=startadmin.sh

::解压等待时间

set times=25000

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::停止服务器,并且解压最新war包::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

echo 停止服务器,并且解压部署文件...

call stopAndExtract.bat

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::上传最新jar包及相关配置文件:::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

echo 从本地上传jar包及配置文件至10.1.18.8...

call ftp_8.bat

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::启动服务器:::::::::::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

echo 开始启动服务器...

call startAdmin.bat

telnet登录到服务器,并且解压war包

FILE:stopAndExtract.bat

@echo off

echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs

::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::登录::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "%userid%{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "%password%{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::进入weblogic家目录:::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::

echo sh.SendKeys "cd %homeDir%{ENTER}">>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::进入自动脚本目录::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::

echo sh.SendKeys "cd %shDir%{ENTER}">>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::自动解压::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::

rem echo 停止weblogic并且解压war包

echo sh.SendKeys "sh %stopShFileName% {ENTER}">>telnet_tmp.vbs

::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::解压,等待时间::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::

echo WScript.Sleep %times%>>telnet_tmp.vbs

::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::退出shell::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::

echo sh.SendKeys "exit{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "quit{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "{ENTER}" >>telnet_tmp.vbs

::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::开始执行:::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::

start telnet %url%

::cscript telnet_tmp.vbs

::del telnet_tmp.vbs

由于测试服务器有两个,而这两个服务器需要一个特殊的jar包,而且内部内容不完全相同,所以只能分别上传了

FILE:ftp_8.bat

@echo off

ftp -ns:ftp_10.1.18.8.ftp

自动ftp脚本

FILE:ftp_10.1.18.8.ftp

open 10.1.18.8

User weblogic

weblogic

cd /weblogic/bea/user_projects/domains/base_domain/CEBPLMS/WEB-INF/lib

delete ceboci.jar

lcd D:/WorkSpace/jar

binary

put ceboci8.jar

rename ceboci8.jar ceboci.jar

ascii

cd ..

delete amarsoft.xml

put amarsoft.xml

bye

quit

启动服务器脚本

file:startAdmin.bat

@echo off

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::::::::::::登录服务器::::::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "%userid%{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "%password%{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::::::进入家目录,启动服务::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

echo sh.SendKeys "cd %homeDir%{ENTER}">>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "sh %startShFileName% {ENTER}">>telnet_tmp.vbs

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::::::::::::退出服务器::::::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "exit{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "quit{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "{ENTER}" >>telnet_tmp.vbs

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:::::::::::::::::::::::::::::开始执行::::::::::::::::::::::::::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

start telnet %url%

cscript telnet_tmp.vbs

::del telnet_tmp.vbs

最后附上停止weblogic服务器并且解压war包的的shell脚本。也许有人会说停止服务器,unix下不是有个stopadmin.sh不过,这个脚本执行正常关闭weblogic,太慢了。我这里为了节约发部时间,所以停止weblogic采用直接干掉java进程的方法

file:autoRefresh.sh

#!/bin/sh

# Get PID from process name

#配置相关变量

plmsHome='/weblogic/bea/user_projects/domains/base_domain/CEBPLMS'

warFile=CEBPLMS.war

#找到java进程的pid号,并且结束该进程

psList=`ps -u weblogic |grep java`

for list in $psList

do

pid=$list

break

done

echo 停止PID:pid

kill -9 $pid

cd $plmsHome

jar -xvf $warFile

最后总结:其实这几个bat脚本主要是模拟人手工操作,发送键盘命令。因为在dos下启动telnet,这里其他的批处理命令已不能用,是由于telnet开了一个新的shell,所以只能模拟键盘命令了。特别提醒一下,执行过程中,不要进行其他操作。因为整个执行的过程,相当于我们自己敲键盘。如果你在做其他的事,你会发现好像有人在敲你的键盘。恰恰是那段vbs文件执行的结果.如果您有更好的方法,望不吝见赐教。

在最末,附上vbs操作键盘的相关资料:

下面的资料从网上获取,不过忘记了出处

自动登录telnet批处理文件

一。Windows平台:

复制一下代码到记事本中并另保存为autoTelnet.bat,之后双击运行就实现自动登录到telnet服务器了,服务器IP自己修改

@echo off

echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "open 192.168.1.200" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "engineer{ENTER}" >>telnet_tmp.vbs

echo WScript.Sleep 300 >>telnet_tmp.vbs

echo sh.SendKeys "ls {ENTER}">>telnet_tmp.vbs

start telnet

cscript //nologo telnet_tmp.vbs

del telnet_tmp.vbs

附录:

对于SendKeys这个命令可以send什么,我们可以看下面的列表:

BACKSPACE {BACKSPACE}, {BS}, or {BKSP}

BREAK {BREAK}

CAPS LOCK {CAPSLOCK}

DEL or DELETE {DELETE} or {DEL}

DOWN ARROW {DOWN}

END {END}

ENTER {ENTER}or ~

ESC {ESC}

HELP {HELP}

HOME {HOME}

INS or INSERT {INSERT} or {INS}

LEFT ARROW {LEFT}

NUM LOCK {NUMLOCK}

PAGE DOWN {PGDN}

PAGE UP {PGUP}

PRINT SCREEN {PRTSC}

RIGHT ARROW {RIGHT}

SCROLL LOCK {SCROLLLOCK}

TAB {TAB}

UP ARROW {UP}

F1 {F1}

F2 {F2}

F3 {F3}

F4 {F4}

F5 {F5}

F6 {F6}

F7 {F7}

F8 {F8}

F9 {F9}

F10 {F10}

F11 {F11}

F12 {F12}

F13 {F13}

F14 {F14}

F15 {F15}

F16 {F16}

SHIFT +

CTRL ^

ALT %

二。Linux平台

保证你的系统上存在expect这个可执行程序,保存以下代码到文件autoTelnet,并给与执行权限。详细操作察看命令expect

#!/usr/bin/expect --

set SERVER "192.168.1"

set USER "myusername"

set PASSWD "mypass"

if { $argc } {

spawn telnet $SERVER.$argv

} else {

spawn telnet $SERVER.200

}

expect "Password:"

send "$PASSWD/n"

expect "#"

send "ls/n"

interact

对了,还忘记了文件中涉及一个sleep命令,这个命令window下是没有的,不过网上的强人用bat也制成了这个文件。现一起附上。

dos远程登录oracle,DOS批处理下 操作telnet实现自动远程登录操作相关推荐

  1. telnet远程重启服务器,net、ftp、telnet命令和远程登录重启服务器

    net.ftp.telnet命令和远程登录重启服务器 net.ftp.telnet命令和远程登录重启服务器 分类: 系统配置 2010-07-16 10:00 (1)net命令 net use \\1 ...

  2. 页面长时间未操作,实现自动退出登录原理

    项目场景: 页面长时间未操作的时候,会自动退出登录,并且提示你的登录已过期,需重新登录.那这个是怎么实现的呢? 两种方案 第一种是完全由后端实现的,后台在servlet可以获取到session,可以设 ...

  3. linux自动登录cmcc脚本,Linux下移动CMCC WLAN自动连接认证

    山东移动的WLAN目前覆盖了很多居民区.公共场所和高校.价格低廉,速度尚可,普通网络应用绰绰有余,准备把家中的10M廉通宽带打入冷宫. 不过CMCC WLAN每次都要Web页认证比较麻烦.幸亏Linu ...

  4. 用python和mysql做注册登录系统_python3.6 下连接mysql数据库实现用户登录与注册

    在python3.6中连接数据库只能使用pymysql包,安装方法直接通过pip install pymysql安装即可,较为方便. 初学者一定要做的便是用户的注册与登录,同时牵涉到数据库的相关操作, ...

  5. php 配置远程调试,PHP Linux 环境下搭建 XDEBUG并配置远程调试

    在网站 https://xdebug.org/download.php 找到对应PHP版本的XDEBUG下载,下载时选择source版本 image 获取下载地址## 下载打包的源码 wget htt ...

  6. 在本机用Toad远程连接Oracle数据库

    在本机用Toad远程连接Oracle数据库 在本机利用Toad连接远程数据库,需要以下操作步骤. 第一步:安装Oracle数据库 安装Oracle数据库的时候,需要注意以下几点: 1)         ...

  7. Oracle 19c 新特性:ADG的自动DML重定向增强读写分离--ADG_REDIRECT_DML

    Oracle 19c 新特性:ADG的自动DML重定向增强读写分离--ADG_REDIRECT_DML Oracle 19c 新特性之一,adg的自动 dml 重定向.就是在 ADG 环境下,连接到 ...

  8. 如何在DOS下用TCP/IP协议进行登录Windows 2K?

    如何在DOS下用TCP/IP协议进行登录Windows 2K?  [ 作者:佚名    来源:本站原创    点击数:2172    更新时间:2004-3-31    文章录入:xiaofei ] ...

  9. linux下安装oracle客户端,实现远程连接oracle库,导出数据表

    工作中用到不安装oracle服务端,只安装客户端. 一:首先要到下载rpm包,使用如下,命令安装 rpm -ivh oracle/oracle-instantclient11.2-basic-11.2 ...

最新文章

  1. Driver for device rausb0 has been compiled with version 22
  2. centos 查找nginx_centos7 nginx安装/启动/进程状态/杀掉进程
  3. PostgreSQL的ecpg程序的调适与运行
  4. 8.3 算法流程与评估-机器学习笔记-斯坦福吴恩达教授
  5. Oracle systemstate dump介绍
  6. IntelliJ IDEA——数据库集成工具(Database)的使用
  7. 前端学习(3227):回调形式的ref的调用次数
  8. 拟阵论 贪心策略的数学基础
  9. PS_02_大师之路
  10. css完成图片预加载,图片预加载
  11. GIS招聘 | 辽宁省省直事业单位(含测绘、地信等专业岗位)
  12. AXI中的wrap burst
  13. 学习编程的心得(一)
  14. 【系统】ThrottleStop软件使用教程入门级,游戏+工作两种解决cpu过热方案
  15. DTD(文档类型定义)介绍
  16. DirectX 11 Tutorial 1 中文翻译版教程: 在Visual Studio上配置DirectX 11
  17. 吉林大学计算机 林向,基于不同尺度的山西太岳山森林主导生态功能评价研究...
  18. In-band network telemetry
  19. Xbox 360抢鲜测评
  20. IP Camera / Network Camera - Comments

热门文章

  1. 用编程解决生活中的问题
  2. C++11 —— 基于区间(range)的 for 循环
  3. 机器学习基础(二十二)—— decision tree
  4. C 语言基础——程序运行时间的计算
  5. np.random.RandomState、np.random.rand、np.random.random、np.random_sample
  6. 画对数幅频曲线_耳机频响曲线如何看(中)--耳机和音箱对频响和失真的要求的差异...
  7. python从入门到精通需要多久-Python从入门到精通
  8. 科大讯飞新一代语音识别系统揭秘
  9. 密码加密模块 bcrypt (详细,好理解,示例源码)
  10. php urldecode 加号不显示_php|urldecode urlencode 的加号问题