
Linux运行sql脚本的具体 *** 作步骤如下:
1、使用shell工具登陆到安装postgresql的服务器,切换到postgres用户,postgresql默认的 *** 作用户,命令是:su - postgres,查看当前路径是/var/lib/psql,创建一个test.sql脚本文件,命令是:vim test.sql。
2、sql脚本内容是:create table test (id int not null primary key,name text)insert into test valus(1, 't1')
3、执行test.sql脚本,命令是:psql -f test.sql
这里是因为postgresql安装本机上,在第一步中我们切换到了postgres用户,因此这里默认就是postgres用户来 *** 作,不用带上用户名和密码。执行结果如下,可以看到有两个提示:
create table
insert 0 1
执行完成后,我们登入数据库,命令是:psql
4、进入psql交互式命令行后,我们执行两个查看命令:\d
可以看到表test确实已经创建成功,然后执行命令:\d test
可以看到表中字段是id和name,和我们创建语句中内容一样,说明第一条语句执行成功。
5、查看表中数据,命令是:select * from test
显示出来的值是1,t1,说明第二条执行语句也执行成功,说明test.sql脚本执行成功。
6、默认是postgres用户,本机 *** 作是,不需要用户和密码,现在我们来试试 *** 作远程linux服务器上的postgresql,也就是说执行本地的脚本文件,在远程服务器上创建表。如下面图中所示,命令是:psql -U test1 -h 192.168.1.194 -f test.sql,输入对应用户的密码。
7、登陆到这个远程服务器上,命令是:psql -U test -h 192.168.194
执行查看命令:\d,\d test
最后查询数据库:select * from test结果和上面都一致。
package org.shirdrn.shellimport java.io.IOExceptionimport java.io.InputStreamimport java.nio.charset.Charsetimport ch.ethz.ssh2.Connectionimport ch.ethz.ssh2.Session/** * 远程Shell脚本执行工具 * * @author Administrator */ public class RemoteShellTool { private Connection connprivate String ipAddrprivate String charset = Charset.defaultCharset().toString()private String userNameprivate String passwordpublic RemoteShellTool(String ipAddr, String userName, String password, String charset) {this.ipAddr = ipAddr this.userName = userName this.password = password if(charset != null) { this.charset = charset } } /** * 登录远程Linux主机 * * @return * @throws IOException */ public boolean login() throws IOException {conn = new Connection(ipAddr) conn.connect()// 连接return conn.authenticateWithPassword(userName, password)// 认证 } /** * 执行Shell脚本或命令 * * @param cmds 命令行序列 * @return */ public String exec(String cmds) {InputStream in = null String result = "" try { if (this.login()) { Session session = conn.openSession()// 打开一个会话 session.execCommand(cmds) in = session.getStdout() result = this.processStdout(in, this.charset) conn.close()}} catch (IOException e1) { e1.printStackTrace() }return result} /** * 解析流获取字符串信息 * * @param in 输入流对象 * @param charset 字符集 * @return */ public String processStdout(InputStream in, String charset) {byte[] buf = new byte[1024] StringBuffer sb = new StringBuffer() try { while (in.read(buf) != -1) { sb.append(new String(buf, charset))}} catch (IOException e) { e.printStackTrace() }return sb.toString()} }第一步:规划在连通bat�.shellä¹åè¦å æwindowsåwindowsä¹é´çå ³ç³»ï¼linuxålinuxä¹é´çå ³ç³»æéã windowsä¹é´ç¨net use è¿è¡è¿æ¥ï¼linuxä¹é´ä½¿ç¨sshè¿è¡è¿æ¥ç¬¬äºæ¥:æå°åºPS:以䏿æè¿è¡ç¯å¢é½æ¯å¨è¶ 级管çåä¸è¿è¡ï¼ççè·³åºä¸äºä¹±ä¸å «ç³çä¸è¥¿é»ç¢é 桥大计ãwindowsé´å¯ç¨net useè¿è¡æµè¯ï¼æ¥çæ¯å¦è½ç¸è¿çãä¾ï¼net use \\192.168.1.124\ipc$ "123456" /user:"administrator"net use \\ipå°å\ipc$ "å¯ç "/user:"ç¨æ·å"è¿ä¸ªå¯ç åç¨æ·å齿¯è¦è¿æ¥è¿å»é£å°æºåçå¯ç åç¨æ·åçè¥åºç°ä»¥ä¸æç¤ºå°±è¯æè¿æ¥æåå½ç¶ä¸äºé½æ¯æ²¡æè¿ä¹é¡ºå©çãããä¾å¦ãããåè¿ä¹äºä¹±ä¸å «ç³çéè¯¯åºæ¬å°±æ¯ç½ç»ä¸éåï¼ipå°åæè¯¯ï¼ç¨æ·åå¯ç æè¯¯ä¹ç±»é æçãããæä»¥å¾å¤å¤å©ç¨åº¦å¨ãè°·å§ä¹ç±»çç¥å¨è¿è¡è§£å³ãæè®¸ææ¶åå¯è½è¿ä¼ç¨å°ä»¥ä¸ä¸äºå½ä»¤net use æ¥æ¥çåªäºæ¯åå¨çnet use \\192.168.1.210\ipc$ /del ç¨æ¥å é¤è¿æ¥windowsçè¿æ¥æ¹å¼å°±æ¯å¦æ¤ãå¨ä½ çå®¢æ·æºä¸ç¨åæ ·çæ¹æ³å»æµè¯éè¦å å ¥æ¹éå ³æºå¤§åçwindowsæå¡å¨ãlinuxé´é信使ç¨sshæ¹å¼æ¥è¿è¡ãå è¿è¡é ç½®linuxé´sshåæºäºä¿¡æºå¶ï¼è¿æ ·å°±å¯ä»¥ä½¿ä¸¤æºä¹é´éä¿¡ä¸éè¦è¾å ¥å¯ç è¿è¡è®¿é®ï¼å°å¯ç å ¨é¨éèèµ·æ¥ï¼è¿æ ·ä¹èµ·å°äºå®å ¨ä½ç¨ãå ³äºsshåæºä¿¡ä»»æºå¶å¯ä»¥æä¹åçå客䏿¥ç http://alwaysyunwei.blog.51cto.com/3224143/1222601第ä¸é¨ï¼æ¶æ¡¥ç°å¨linuxæºå¨ä¸åä¸ä¸ªshellèæ¬è¿è¡æ¹éå ³æºå ¶ä¸ip.txtåæ¾è¦æ¹éå ³æºçlinuxæºå¨ipå½ç¶shutdown_boot.shåºè¯¥åä¸é¢è¿æ ·åï¼è䏿¯å¾çä¸ç飿 ·ï¼å¾çä¸çå å®¹åªæ¯æåæµè¯ç¨çã#!/bin/shfor ip in `cat ip.txt`dossh $ip <<EOFecho "{$ip} shutdown now..."ifconfiginit 0EOFdonessh 192.168.1.216 -p10088<<EOFecho "shutdown 192.168.1.216 now...."ifconfiginit 0EOFå ä¸ºå¨æçæ£å¼ç¯å¢ä¸216è¿å°æºåSSHç«¯å£æ¯è¾ç¹æ®ï¼æä»¥åç¬å¥ç¦»åºæ¥ãæ¡¥çä¸ç«¯å·²æå¥½ï¼ç°å¨æå»ºå¦ä¸ç«¯ï¼windowsä¸batèæ¬æ¥è¿è¡windowsæ¹éå ³æºå»ºç«ä¸ä¸ªshutdown.batæä»¶åå ¥ä»¥ä¸å 容#æ¹éå ³éwindowsæºå¨net use \\192.168.1.249\ipc$ "12345" /user:"administrator"shutdown -s -f -t 20 -m \\192.168.1.249net use \\192.168.1.254\ipc$ "123456" /user:"administrator"shutdown -s -f -t 20 -m \\192.168.1.254net use \\192.168.1.210\ipc$ "123456" /user:"administrator"shutdown -s -f -t 20 -m \\192.168.1.210æ¡¥çå¦ä¸ç«¯ä¹æå¥½äºæå䏿¥å°±æ¯æä¸¤ç«¯è¿èµ·æ¥è¿æ¶åå°±è¦è¯·åºæä»¬çputtyå·¥å ·å¯è°·å§ã度å¨ä¸è½½ä¸ä¸ªç¬¬ä¸æ¬¡è¦è¿è¡æå¨è¿æ¥ç¨è¿ä¸ªå·¥å ·è¿è¡è¿æ¥shellèæ¬æå¨çé£å°æºåå¡«ä¸IPå端å£å³å¯ãç¶åè¿è¡è¿æ¥ï¼ä¼æç¤ºè¾å ¥ç¨æ·ååå¯ç ï¼ç»å ¥å®åå°±åºç°sshhostkeysæä»¶å¤¹ç¶åæshutdown.batæä»¶æ¾å ¥å°è·è¿æä»¶å¤¹å级ç®å½ä¸ãå¨batæä»¶æ·»å 以ä¸å 容#æ¹éå ³élinuxæºå¨D:cd puttyfile_0.62cnputty.exe -ssh -pw 123456-m test.sh root@192.168.1.241ç®å说ä¸è¿ä¸ªè¯æ³putty.ext -ssh -pw å¯ç -m è¦å¨linuxæ§è¡çæä»¶ ç¨æ·å@IPå°åå ¶ä¸test.sh乿¯æ¾å¨sshhostkeyså级ç®å½ä¸ï¼éé¢åä¸ä½ è¦ålinuxæ§è¡çå½ä»¤#!/bin/shcd /opt/script/shell#mkdir /tmp/test061502sh shutdown_boot.sh#mkdir test06170æç»çç»æå°±æ¯ä»¥ä¸å 容äºshutdown.battest.shè¿æ ·å°±å¤§ååæç¬¬åæ¥ï¼åæå·¥ä½æç §è¿ä¸ªæµç¨å¯ä»¥å®ææåçè¦æ±ï¼ä½è¿æ ·ä¼åå¨å¾å¤çå®å ¨é®é¢ï¼å¯ç æç å°±æ¯ä¸ä¸ªé®é¢ï¼è¿ä¸ªè¿æå¾ ç ç©¶çè¦ææ ·å¤çãå¦å¤ä¸ä¸ªï¼å¨è¿ä¸ªbatæä»¶ä¸æå¥½å ä¸ä¸ªæ¶é´å¤æï¼æ¯å¦æä¸6ç¹åç¹å»æ§è¡è¿ä¸ªbatæä»¶å¯ä»¥æ£å¸¸è¿è¡ï¼å ¶ä»æ¶é´æ®µç¹å»æ¶ååºç°åè¦ï¼ä»¥é²è¯¯æä½å¯¼è´å ³æºã欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)