上海宜延电子商务有限公司
网络资源同步及管理平台终端软件
(简称Y3T)V1.0.0
操作说明书
作者:项目开发组
日期:2020/6/19
产品网址:www.frontnew.com/y3t
更新记录
更新日期 | 更新内容 | 更新者 | 审核者 | 状态 |
2020/6/19 | 创建操作说明书v1 | 项目开发组马钧 | 范冬宝、王勇 | 通过 |
软件产生背景:
在实际的项目发布中,经常需要使用多种软件工具来完成任务,比如用putty等软件来连接服务器执行shell命令,又同时需要pscp等软件来上载或者下载文件,工作效率不高,同时用户也需要在使用过程中记住复杂的登录用户名和密码,使用起来也不方便。如何创造一种宏语言来通过它完成发布软件的功能是一项迫切需要完成的任务,而且通过一种特定软件也不需要在不同服务器间来回切换登录。
软件主要功能:
1) 可以批量执行宜延电子商务有限公司自定义的宏语言,名字为y3计算机语言。
2) 可以不需要输入服务器登录的详细用户名和密码的情况下,直接通过引用服务器名的方式来登录服务器。
3) 远程连接服务器,并执行shell命令,比如查看目录和文件内容。
4) 在配置文件中设置了服务器连接信息后,通过服务器名可以在不同服务器间进行切换。
5) 可以通过ssh方式直接连到服务器端,查看服务器的状态等信息。
主要名词注释:
1) Y3:宜延自行设计和制作的计算机语言,用于服务器维护方面的工作。
2) Shell:Linux服务器的Bash Shell及Bash Shell脚本。
3) SSH:一种与服务器通讯的协议,通过公有密钥和私有密钥建立通讯通道。
4) RY3模式:本软件的一种运行模式,该模式的提示符是RY3>>,在该模式下能够运行宜延Y3计算机语言。
5) RSH模式:本软件的一种运行模式,该模式的提示符是RSH>>,在该模式下能够运行Linux Shell脚本以维护和管理Linux服务器。
6) SMD模式:本软件的一种运行模式,该模式的提示符是>>>>,在该模式下能够运行本软件的系统指令,例如help以获取帮助提示信息。
1.1. 本软件提供了远程通过宜延y3宏语言来操作Linux服务器的功能,用户可以使用y3宏语言来加载服务器连接信息,上传文件和下载文件等操作。
1.2. 本软件提供了远程通过ssh协议方式连接服务器,并且能转换y3宏语言为shell命令脚本并上传至服务器进行执行。
1.3. 本软件提供了远程通过ssh协议方式连接服务器,并且执行服务器上的shell命令。
1.4. 本软件提供了在系统常态命令、y3命令状态、远程执行shell命令状态之间的切换,以方便用户使用。
2.1.1. 本软件需要安装java jre 1.8以上(含)版本。
2.1.2. 输入java -version以测试是否正确安装了java jre1.8以上,当使用者看到以下类似内容,则说明java已被正确安装。本公司建议使用者使用64位操作系统及64位Java软件。如图-2-1所示。
图-2-1
2.1.3. 将y3t.zip文件解压缩到目标目录并cd至目标目录。
解压缩安装包y3t.zip文件,使用者会发现在y3t下有y3t.bat文件和y3t-1.0.jar文件,使用本软件有二种运行方式。
2.2.1. 本地Console启动方式
在y3t目录下用PowerCmd软件、Windows自带的Cmd软件或者其他类似软件运行以下命令:y3t.bat或者java -jar y3t-1.0.jar,则会出现以下界面,则说明主应用启动正常。本说明书使用PowerCmd软件来启动y3t.bat程序。如图-2-2所示。
图-2-2
所显示的“>>>”为命令提示符。用户可以输入help命令来获取帮助信息。
2.2.2. 服务器Console启动方式
在y3t目录下运行以下命令:y3t.bat 服务器IP地址 服务器SSH端口号 ssh 登录用户名 登录用户密码或者java -jar y3t-1.0.jar 服务器IP地址 服务器SSH端口号 ssh 登录用户名 登录用户密码,例如y3t.bat 192.168.111.128 22 ssh testuser testpassword,则会出现以下界面,则说明主应用启动正常并且已经连接到目标Linux服务器。如图-2-3所示。
图-2-3
3.1. 运行y3t.bat后,系统出现>>>>命令提示,用户在>>>>之后输入help按回车,可以看到软件把系统命令罗列在屏幕中。如图-3-1所示。
图-3-1
3.2. 在本软件系统中,系统提供了三种状态,分别是RY3模式(运行Y3脚本的模式)、RSH模式(运行Linux Shell脚本的模式)、SMD模式(系统命令模式比如Help命令等),系统默认进入SMD模式。
3.3. 如用户想进入RY3模式,输入ry3并按回车键,这时的命令提示符为RY3>>,意味着此时的运行环境为RY3环境。在RY3模式下,用户可以运行Y3宏语言脚本。界面类似如下,如图-3-2所示。
图-3-2
3.4. 如用户想进入RSH模式,输入rsh并按回车键,这时的命令提示符为RSH>>,意味着此时的运行环境为RSH环境。在RSH模式下,用户可以运行Shell语言脚本。界面类似如下,如图-3-3所示。
图-3-3
3.5. 如用户想进入SMD模式,输入smd并按回车键,这时的命令提示符为>>>>,意味着此时的运行环境为SMD环境。在SMD模式下,用户可以运行本软件系统级别的命令。界面类似如下,如图-3-4所示。
图-3-4
本软件配置文件主要有2个,一个是localConfigServers.xml,另外一个是localConfigParams.xml。当y3t.zip压缩文件解压后,会出现以下目录和文件,上述两个xml文件就显示在解压后的目录里。如图-4-1所示。
图-4-1
4.1.1. 用户可以用notepad或者其他文本编辑器来编辑localConfigServers.xml文件。打开之后,xml文件内容显示如下,用户可以不断向Servers节点添加新的Server节点。如图-4-2所示。
图-4-2
4.1.2. Server节点中的id节点标识了序列号,hostName标识了服务器主机名,domainName标识了域名,ipAddress标识了服务器IP地址,sshPort标识了服务器ssh协议端口,sshUserName标识了登录用的用户名,sshLoginPassword标识了登录用的密码,ssh标识了是否使用ssh协议连接服务器,systemTypeStr标识了系统的类型,目前本软件支持Linux一种系统类型。DomainName(域名)对于局域网内部可以选择性填写。如果SSH节点填写false,则本软件将以非ssh协议方式连接目标服务器。
4.1.3. 对于新增服务器连接信息,只要增加一个相应的Server节点并输入对应的参数信息即可。
4.1.4. 对于更新服务器连接信息,只要在对应的Server节点的地方,修改对应的参数信息即可。
4.1.5. 对于删除服务器连接信息,只要删去相对应的Server节点即可。
4.2.1. 用户可以用notepad或者其他文本编辑器来编辑localConfigParams.xml文件。打开之后,xml文件内容显示如下,用户可以不断向Params节点添加新的Param节点。如图-4-3所示。
图-4-3
4.2.2. Param节点中的id节点标识了序列号,paramCode标识了配置标号,paramName标识了配置名称,paramValue标识了配置值。paramCode必填,作为引用该配置信息使用。paramName和paramValue可选,用户既可以选择配置名称和值,也可以选择配置其余附加配置值。isMailConfig标识了是否该配置信息是关于邮箱配置信息,senderEmailAddress标识了邮件发送者邮箱地址,loginEmailAccount标识了邮件发送时的登录账号,loginEmailPassword标识了邮件发送时的登录密码,sendEmailServer标识了系统发送邮件用的smtp服务器地址,isSendEmailSSL标识了系统发送邮件时是否使用SSL协议,sendEmailPort标识了发送邮件时用的服务器端口。
4.2.3. 对于新增参数配置信息,只要增加一个相应的Param节点并输入对应的参数信息即可。
4.2.4. 对于更新参数配置信息,只要在对应的Param节点的地方,修改对应的参数信息即可。
4.2.5. 对于删除参数配置信息,只要删去相对应的Param节点即可。
除了通过直接编辑服务器连接配置文件的方式,用户也可以在SMD模式下通过命令的方式来设置服务器连接配置信息。
5.1.1. 用户在SMD模式下的”>>>>”命令行提示符下输入AddServerInfo 服务器主机名.服务器域名 服务器IP地址 服务器端口地址。如图-5-1所示。
图-5-1
5.1.2. 系统将自动更新localConfigServers.xml文件并添加新的服务器连接信息节点。这时,服务器用户名和密码信息是空值,用户需要在SMD模式下对该服务器连接信息进行用户名和密码的设置。
5.2.1. 用户在SMD模式下的”>>>>”命令行提示符下输入SetServerLogin 服务器主机名.服务器域名 用户名 登录密码。如图-5-2所示。
图-5-2
5.2.2. 系统将自动根据服务器主机名和服务器域名信息定位到服务器配置信息并更新用户名和密码。
5.2.3. 系统将重新将新设定的用户名和密码重新加载入内存中。
5.3.1. 用户在SMD模式下的”>>>>”命令行提示符下输入UpdateServerInfo 服务器主机名.服务器域名 服务器IP地址 服务器端口地址。如图-5-3所示。
图-5-3
5.3.2. 系统将自动根据服务器主机名和服务器域名信息定位到服务器配置信息并更新IP地址的端口号码。
5.3.3. 系统将重新将新设定的IP地址和端口号码加载入内存。
5.4.1. 用户在SMD模式下的”>>>>”命令行提示符下输入RemoveServerInfo 服务器主机名.服务器域名 服务器。如图-5-4所示。
图-5-4
5.4.2. 系统将自动根据服务器主机名和服务器域名信息定位到服务器配置信息并删除。
5.4.3. 系统将重新加载服务器列表连接配置信息入内存。
5.5.1. 用户在SMD模式下的”>>>>”命令行提示符下输入ListServerInfo。如图-5-5所示。
图-5-5
5.5.2. 系统将自动根据配置文件中的服务器连接配置信息以列表形式显示在屏幕上。
设置工作目录后,在SMD模式下执行y3程序文件或者shell程序文件时不需要提供程序文件目录情况下就可以直接执行程序文件。本软件会记录下工作目录地址信息。
6.1. 输入smd进入SMD模式,并输入setworkfolder 工作目录实际地址,例如SetWorkFolder D:\softs\y3,按回车键。结果会提示”Current working folder is set to be: 目标目录”,如图-6-1-1和图-6-1-2所示。
图-6-1-1
图-6-1-2
6.2. 如果用户想设置新的目录为工作目录,则用户可以在SMD模式下,重新输入SetWorkFolder 目标目录即可。如图-6-2-1所示。
图-6-2-1
图-6-2-2
只能在SMD模式下运行Shell程序文件,而在RSH模式下只能执行单个Shell命令。通过这种方式可以避免shell程序文件只能上传到服务器并登录服务器来执行的麻烦,提高了工作效率。
7.1. 在RY3模式下,输入UseServer(服务器代号,服务器域名),如果没有服务器域名信息则使用Nil代替,例如UseServer(“Server1”,Nil)。这时系统会加载Server1的服务器连接信息至内存中以便使用。如图-7-1-1和图-7-1-2所示。
图-7-1-1
图-7-1-2
7.2. 在SMD模式下,通过SetWorkFolder命令来设置工作目录。如已设置过工作目录,则可以跳过此步骤。
7.3. 在SMD模式下,输入RunShellCode shell程序文件名,例如RunShellCode stesta.sh。系统将自动连接到目标Linux服务器并执行Shell程序文件。结果如图-7-2-1和图-7-2-2所示。程序的运行结果也会显示在屏幕上。
图-7-2-1
图-7-2-2
只能在SMD模式下运行Y3程序文件,而在RY3模式下只能执行单个y3命令。通过这种方式可以避免写大量的shell脚本的低效率,可以通过一句y3命令来完成较多工作,提高了工作效率。
8.1. 在RY3模式下,输入UseServer(服务器代号,服务器域名),如果没有服务器域名信息则使用Nil代替,例如UseServer(“Server1”,Nil)。这时系统会加载Server1的服务器连接信息至内存中以便使用。如图-8-1-1和图-8-1-2所示。
图-8-1-1
图-8-1-2
8.2. 在SMD模式下,通过SetWorkFolder命令来设置工作目录。如已设置过工作目录,则可以跳过此步骤。
8.3. 在SMD模式下,输入RunY3Code y3程序文件名,例如RunY3Code shtest1.y3。系统将编译解释y3程序并自动连接到目标Linux服务器并执行y3程序文件中的语句。结果如图-8-2所示。程序的运行结果也会显示在屏幕上。这段Y3程序是用来循环2次来查看服务器目录的大小的。程序如图-8-3所示。
图-8-2
图-8-3
只能在RSH模式下执行shell指令,而在SMD或者RY3模式下,需要通过输入RSH命令来切换到RSH模式状态。
9.1. 如7所述一样,在RY3模式下,通过UseServer命令来加载目标服务器的连接信息至内存。
9.2. RSH模式一般是以提示符为RSH>>形式出现的。在该模式状态下可以输入shell指令代码。
9.3. 例如,我们输入ls -l去查看服务器上用户home目录情况。我们得到了服务器上的目录情况如图-9-1所示。
图-9-1
9.4. 例如,我们输入cd ~; mv testuse1.txt testuse3.txt; 以进入用户home目录并重命名testuse1.txt为testuse3.txt文件。我们得到了执行结果情况如图-9-2-1和图-9-2-2所示。
图-9-1-1
图-9-2-2
当我们输入ls -l ~再次来查看用户home目录时,我们发现testuse1.txt已经被重名为testuse3.txt文件了。如图-9-3所示。
图-9-3
只能在RY3模式下执行Y3指令,而在SMD或者RSH模式下,需要通过输入RY3命令来切换到RY3模式状态。
10.1. 如7所述一样,在RY3模式下,通过UseServer命令来加载目标服务器的连接信息至内存。
10.2. RY3模式一般是以提示符为RY3>>形式出现的。在该模式状态下可以输入y3指令代码。
10.3. 例如,我们输入PrintLn("Hello World!");指令后,本软件编译解释执行y3指令后,将结果显示在屏幕上。如图-10-1和图-10-2所示。
图-10-1
图-10-2
10.4. 例如,我们输入PushFileToServer("d:/softs/james-binary-2.3.2.1.zip","/tmp");指令后,本软件编译解释执行y3指令后,将d:/softs目录下的james-binary-2.3.2.1.zip文件复制到目标服务器上的/tmp目录里。执行完毕后,本软件将结果显示在屏幕上。如图-10-3-1和图-10-3-2所示。
图-10-3-1
图-10-3-2
之后我们可以在服务器上检验该文件确实复制到服务器上了。图-10-4显示。
图-10-4
11.1. 在RSH模式下,需要先输入SMD命令切换到SMD模式下,再输入quit命令以退出应用。在RSH模式下不能直接通过quit命令来退出应用。
11.2. 在RY3模式下,需要先输入SMD命令切换到SMD模式下,再输入quit命令以退出应用。在RY3模式下不能直接通过quit命令来退出应用。
11.3. 在SMD模式下,用户直接输入quit命令即可直接退出应用。如图-11-1所示。
图-11-1
本软件还提供了以ssh协议直连服务器的方式。用户直接在PowerCmd、Windows Cmd等软件中输入y3t.bat 目标服务器地址 目标服务器端口 ssh 登录用户名 登录密码。在连接到服务器后,界面与普通的putty等ssh terminal没有啥差别,功能上本软件不支持vi和vim方式编辑文件,用户可以使用cat重定向方式来向文件中添加内容,即cat “内容” > 文件。
12.1. 输入了服务器连接信息后,连接后的界面如图-12-1所示。
图-12-1
12.2. 用户可以在类似于真实Linux操作界面中输入shell命令并执行。如图-12-2所示。
图-12-2
12.3. 一般来说用户可以输入exit命令,即可退出。
本软件还提供了以ssh协议直连服务器的方式。用户直接在PowerCmd、Windows Cmd等软件中输入y3t.bat 目标服务器地址 目标服务器端口 telnet命令行。在连接到服务器后,界面与普通的telnet terminal没有啥差别。
13.1. 输入了服务器连接信息后,连接后的界面如图-13-1-1和图-13-1-2所示。
图-13-1-1
图-13-1-2
13.2. 通常来说输入了quit命令之后,即可退出。
主函数是必须要声明的,这是整个Y3程序的入口。它由Func main()和EndFunc组成,具体代码可以写在这2者之间。
Func main()
具体代码
Endfunc
使用时,本软件自动会加载Y3程序并寻找main函数来进入执行。
函数的声明由Func关键字、函数名、参数组成,参数都依次写在()中,但是不需要声明参数的类型。例如如下myfunction的函数的声明。
Func myfunction(num)
具体代码
myfunction=值;
Endfunc
使用时,直接在main主函数的代码中通过函数名(参数)的形式进行调用。例如:S = myfunction( X );而在末尾使用与函数名一致的变量赋值时则会自动返回函数计算的最终值。
通过变量=值的方式来声明变量,例如N = 1.1;
本软件会自动识别变量的类型,当变量值没有小数点时,则该变量会被自动识别为整型,又如当变量值有小数点是,则该变量会被自动识别为浮点数,例如N = 1.1;
给变量赋值可以采用=值的方式,在程序中引用该变量则会引用到该变量对应的值。例如:test = N + (M - num);
打印时,使用Write函数或者PrintLn函数。例如Write( "Enter a number: " );
输入值是,使用Read函数,Read函数会从console中读取输入的值并且赋予给变量。例如Read ( X );
逻辑运算主要是由And(A,B)与运算、Or(A,B)或运算、NE(A,B)判断不相等、EQ(A,B)判断相等、GE(A,B)判断大于等于、GT(A,B)判断大于、LE(A,B)判断小于等于、LT(A,B)判断小于等。
当SimpleIf判断条件为真时,则执行Do语句后面所指定的Scope语句范围中的语句,否则自动执行下一句语句作为Else部分,同样也可以继续通过ElseIf判断条件为真时,执行ElseIf后面的Do语句后面所指定的Scope语句范围中的语句。例如:
SimpleIf (EQ(M,1)) Do Scope(s5,s5) ElseIf (EQ(M,2)) Do Scope(s6,s6) ElseOther Do Scope(s7,s7);
K=4;
s5: PrintLn("M value is 1");
s6: PrintLn("M value is 2");
s7: PrintLn("M value is not 1 or 2");
其中的S5、S6、S7分别是语句标号。
循环运算主要是通过For、While、Repeat语句来处理的。
For循环会根据括号参数中的整数来知道循环次数,Step来决定每次步骤后,Index值增加多少,Scope决定依次执行语句标号对应的哪些语句。例如如下程序片段。
For (LE(N,num)) Do Scope(d1,d3) Step 1;
Write ("K is:");
Write ( K );
d1: M = M + N;
d2: K = K + N;
d3: L = L + N;
While循环会每次判断括号中的条件是否满足循环的必要条件,条件满足时执行Scope中所设定的依次执行的语句。
While (AND(GE(N,2),LE(N,7))) Do Scope(s1,s2);
s1: PrintLn(ListAt(A,N));
s2: N=N+1;
Repeat循环会根据参数来决定循环几次来执行Scope中所设定的依次执行的语句。例如:
Repeat(2) Do Scope(v1,v2) Wait(1*1000);
v1: Rsh(CnvCheckDiskH(Nil));
v2: Rsh(CnvCheckDiskH("/home"));
用户可以使用SleepFor语句来让程序暂时延时一段时间,延时的时间长短由参数来决定。
用户可以使用Wait语句来让程序暂时延时一段时间,延时的时间长短由参数来决定。
我们通过MakeList函数来创建和定义一个数组,目前只支持一维数组。例如:
MakeList(A,{myitem1 myitem2 myitem3 myitem4 myitem5 myitem6 myitem7 myitem8});它将创建一个数组并且赋于给变量A。此时,变量A就具有了一维数组的特征和数据。
我们通过ListAt函数来从数组中获取某个Index对应的数据。例如:
PrintLn(ListAt(A,N)); 这句语句将从A中获得N所对应的数值并打印。
我们使用UseServer语句来加载信息。当没有域名而只有服务器名的时候,则使用Nil来代替空值。例如:UseServer("Server1",Nil); 其中Server1就是服务器名,Nil就是域名空值。
我们使用UseConfig语句来加在配置数据。所有配置数据都需要在xml文件中已经配置好,加载时,通过配置信息的code来加载。例如:UseConfig("Config1"); 其中Config1就是配置数据的code。
我们使用GrabFileFromServer语句来复制服务器文件至本地。例如:GrabFileFromServer("服务器上的文件全路径","本地目录"); 在RSH模式下执行本指令,本软件将从服务器上把文件复制到本地。
我们使用PushFileToServer语句来复制本地文件至服务器目录中。例如PushFileToServer(“本地文件全路径”,”服务器目录”); 在RSH模式下执行本指令,本软件将把本地文件复制到服务器目录中。
我们使用CopyFileOnServer语句在服务器上不同目录间复制文件。例如CopyFileOnServer(“源文件全路径”,”目标文件全路径”); 在RSH模式下,本命令将完成文件在不同目录间的复制。
我们使用FilterFileOnServer语句在RSH模式下对服务器上的文件内容进行过滤并放置到新文件中。例如FilterFileOnServer(“源文件全路径”,”过滤条件”,”目标文件全路径”); 过滤条件通过空格隔开。
在使用UseConfig语句之后,我们可以使用SendMail语句将文件发送到目标邮箱中。例如:SendMail("目标邮箱","cc邮箱","bcc邮箱","附件文件全路径");