[20170706]ssh diff 问题.txt

[20170706]ssh diff 问题.txt

--//昨天写的diff 比较执行结果的不同,链接http://blog.itpub.net/267265/viewspace-2141638/
--//如果对比不同机器呢?自然使用ssh. 但是我测试遇到一个问题.
--//通过例子说明

$  ssh grid@192.168.xx.xxx "lsnrctl status LISTENER_SCAN1"
bash: lsnrctl: command not found

$  ssh grid@192.168.aaa.bb6 "date"
Thu Jul  6 09:06:20 CST 2017

$  ssh grid@192.168.aaa.bb6 "which lsnrctl"
which: no lsnrctl in (/usr/local/bin:/bin:/usr/bin)

--//很明显这样执行ssh环境变量PATH设置是/usr/local/bin:/bin:/usr/bin.

--//查看man ssh文档,你可以发现
ENVIRONMENT
     ssh will normally set the following environment variables:
...
     HOME                  Set to the path of the user's home directory.
     LOGNAME               Synonym for USER; set for compatibility with systems that use this variable.
     MAIL                  Set to the path of the user's mailbox.
     PATH                  Set to the default PATH, as specified when compiling ssh.

Additionally, ssh reads ~/.ssh/environment, and adds lines of the format "VARNAME=value" to the environment if the file
exists and users are allowed to change their environment.  For more information, see the PermitUserEnvironment option in
sshd_config(5).

--//根据以上信息,修改如下:
1.修改服务端的/etc/ssh/sshd_config加入:
PermitUserEnvironment yes
--//注意要重启启动sshd服务才生效!!

2.在服务端的grid用户建立~/.ssh/environment文件,内容如下:
$ cat .ssh/environment
TZ=Asia/Shanghai
ORACLE_HOME=/u01/app/11.2.0.4/grid
PATH=/usr/local/bin:/bin:/usr/bin:/u01/app/11.2.0.4/grid/bin
ORACLE_SID=+ASM2

NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS.FF'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF'
--//我仅仅把.bash_prifile的内容拷贝过来.

3.测试:
--//在client段执行:
$ ssh grid@192.168.aaa.bb6 "lsnrctl status LISTENER_SCAN1"
--//OK,成功!!

$  diff <(lsnrctl status LISTENER_SCAN2) <(ssh grid@192.168.aaa.bb6 "lsnrctl status LISTENER_SCAN1")
6c6
< Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))
---
> Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
9c9
< Alias                     LISTENER_SCAN2
---
> Alias                     LISTENER_SCAN1
11,12c11,12
< Start Date                30-JUN-2017 12:00:03
< Uptime                    5 days 21 hr. 21 min. 40 sec
---
> Start Date                30-JUN-2017 12:01:44
> Uptime                    5 days 21 hr. 19 min. 59 sec
17c17
< Listener Log File         /u01/app/11.2.0.4/grid/network/log/listener_scan2.log
---
> Listener Log File         /u01/app/11.2.0.4/grid/network/log/listener_scan1.log
19,20c19,20
<   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN2)))
<   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.xxx.yy9)(PORT=1521)))
---
>   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
>   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.xxx.yy8)(PORT=1521)))

--//这样就可以现实远程执行命令的结果进行比较了.当然我仅仅为了测试,不建议这样使用.
--//还原原来的状态...

--//实际上如果文件比较,很简单例子:
$  diff <(lsnrctl status LISTENER_SCAN2) <(ssh grid@192.168.aaa.bb6 "cat /tmp/b1.txt")
--//或者:
$  diff /tmp/b2.txt <(ssh grid@192.168.aaa.bb6 "cat /tmp/b1.txt")
$  ssh grid@192.168.aaa.bb6 "cat /tmp/b1.txt" | diff /tmp/b2.txt -

--//总结:
--//linux的shell还是很强大的,自己还是精力有限,学习不够.

时间: 2024-11-15 00:15:51

[20170706]ssh diff 问题.txt的相关文章

diff详解,读懂diff结果

  阅读目录 1.概述 2.diff如何工作,如何理解diff的执行结果 3.Normal模式 4.Context模式 5.Unified模式 6.比较目录 7.一些有用的参数 回到顶部 1.概述 本文将要讨论的是diff命令,diff用来比较两个文件.当然文件比较的工具很多,windows系统下面就有不错的工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在windows下工作,这些GUI的比较工具绝对是首选.对于在lin

一天一个shell命令 linux文本操作系列-diff命令详解_linux shell

这又是一个文件比较命令,熟练掌握会节省你很多工作.还记得comm命令吗?diff比他更加复杂,好用,不仅能比较文件,还能比较目录. 当一个文件有多个版本时候,或者更多复杂的文件,目录比较时,你会期望有一个比comm更有用的命令,diff正是为此而生. 全称:different file 实例: 文件1: v1.txt 复制代码 代码如下: hello   world v1_echo   v1_diff   v1_comm  shell is easy! 文件2: v2.txt 复制代码 代码如下

Ubuntu怎么安装ssh服务和客户端

 代码如下 复制代码 $sudo apt-get install openssh-server 安装SSH服务端和客户端  代码如下 复制代码 sudo apt-get install openssh-server openssh-client 将 文件/文件夹 从远程 Ubuntu 机拷至本地(scp)  代码如下 复制代码 scp -r username@192.168.0.1:/home/username/remotefile.txt . 将 文件/文件夹 从本地拷至远程 Ubuntu 机

[20151116]rman 全备份以及增量0级备份.txt

[20151116]rman 全备份以及增量0级备份.txt --前一阵子写了一篇将as copy作为增量0级备份的帖子,今天对比全备份以及增量0级备份的不同. 1.测试环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- --------------------------------------

[20170309]关于在线日志与归档1.txt

[20170309]关于在线日志与归档1.txt --//当日志写满了,或者执行手工了切换,再或者rman备份时有时也会触发日志切换: alter system switch logfile ; alter system archive log current ; --//本文简单探究日志归档是如何保存的.先探查os块. 1.环境: --//启动到mount状态. SYS@book> @ &r/ver BANNER --------------------------------------

[20170309]关于在线日志与归档2.txt

[20170309]关于在线日志与归档2.txt --//当日志写满了,或者执行手工了切换,再或者rman备份时有时也会触发日志切换: alter system switch logfile ; alter system archive log current ; --//本文简单探究日志归档是如何保存的.探查日志文件头块. 1.环境: --//启动到mount状态. SYS@book> @ &r/ver BANNER ------------------------------------

[20170302]fuzzy保存在那里.txt

[20170302]fuzzy保存在那里.txt --参考链接:http://blog.itpub.net/267265/viewspace-2134551/ --提到fuzzy表示某种状态,正常关闭是NO. --从访问的视图看v$datafile_header,应该这个信息保存在数据文件头,找找具体的位置在那里. 1.环境: SYS@book> @ &r/ver BANNER ---------------------------------------------------------

[20170307]dg环境下在线日志损坏12.txt

[20170307]dg环境下在线日志损坏12.txt http://blog.itpub.net/267265/viewspace-2134665/ http://blog.itpub.net/267265/viewspace-2134481/ --//前面的链接我测试了如果日志实时传输与应用的情况下,主库的崩溃并且在线日志删除的情况下(包括主机的备用日志)情况下, --//利用备库接收日志来恢复主库的情况.做一点点总结: 1.将备用日志拷贝过来,必须执行如下命令,加入最后应用的scn号. r

Linux中的Diff和Patch

本文主要记录两个命令的学习情况:diff 和 patch.diff 和 patch 是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史文件上.在数学上说,diff就是对两个集合的差运算,patch就是对两个集合的和运算. 简单的例子 使用这个例子来说明如何进行文件的对比和打补丁. 这里有两个文件 original.txt 和 updated.txt,如下: #include <stdio.h> function old(){ printf("This is