ubuntu远程windowscmd指令
ubuntu远程windowscmd指令
一、安装rdesktop
打开Linux Ubuntu
按Ctrl - Alt - T打开终端
使用万能的安装指令$ sudo apt-get install rdesktop安装rdesktop
使用指令$ rdesktop --help测试rdesktop是否成功安装
二、设置Windows
打开Windows
右键"我的电脑" (好像Win7是"此电脑),选"属性"
点击"远程设置"
把有关的都勾成允许
按Win - R打开"运行"
输入cmd打开Windows命令行
在命令行中输入ipconfig查看你的IP地址
找到"以太网适配器 以太网:"那一段
找到"IPv4 地址"那一行
把后面那一串数字记下来,那是Windows的IP地址
三、使用rdesktop
$ rdesktop IP_address远程协助IP_address,默认不全屏 (协助后屏幕大小不可更改),无声音
$ rdesktop -f IP_address全屏显示
$rdesktop -r attr IP_adress设置属性,例:
$ rdesktop -f -r sound:on IP_address开启声音
$ rdesktop -f -r sound:local IP_address把声音带到本地播放器 (须与-r sound:local联用,不然没声音)
$ rdesktop -u username IP_address使用username作为登录用户名
$ rdesktop -p password IP_address使用password作为登录密码 (如果此项不选且Windows设置了密码,那么会显示出开机登录界面,必须使用强密码,不能用PIN码)
四、编写Linux Bash脚本
由于rdesktop每个参数都很长,一般都会用到如下指令
$ rdesktop -f -u username -p password -r sound:on -r sound:local IP_address
十分繁琐,所以可以将rdesktop的调用写在Bash脚本中
脚本内容
首先说一下使用ssh远程连接服务器执行命令的方法:
为了方便描述,这里把测试服务器称之为A1,目标服务器称之为A2
如果可以直接登录到A2,则配置成功!
下面来说问题:
ssh在远程连接服务器执行命令的时候,经常会遇到环境变量的问题,如下:
如果出现上面的提示,则说明环境变量配置有问题。
先来说解决办法
问题解决!
这里就要说明bash有两种方式interactive + login shell模式和non-interactive + non-login shell模式
在服务器上执行命令,走的是interactive + login shell模式,而通过远程登录执行命令,走的是non-interactive + non-login shell模式。
这两种模式对于环境变量的读取是有区别的。
Shell首先会加载/etc/profile文件,然后再尝试依次去加载下列三个配置文件之一,一旦找到其中一个便不再接着寻找:
~/bash_profile
~/bash_login
~/profile
所以当远程执行命令时,我们只需要让~/bashrc文件中的环境变量与/etc/profile中的环境变量一致即可!
参考:
如何解决SSH远程执行命令找不到环境变量的问题
远程桌面命令的使用方法如下:
1、同时按住快捷键Win+R,打开运行对话框,输入远程桌面命令mstsc。
2、输入好远程桌面命令后按回车打开远程桌面连接对话框,然后输入远程电脑或者服务IP地址点击连接。
3、点击连接之后输入远程电脑的登录用户名和密码。
功能
当某台计算机开启了远程桌面连接功能后我们就可以在网络的另一端控制这台计算机了,通过远程桌面功能我们可以实时的操作这台计算机,在上面安装软件,运行程序,所有的一切都好像是直接在该计算机上操作一样。
这就是远程桌面的最大功能,通过该功能网络管理员可以在家中安全的控制单位的服务器,而且由于该功能是系统内置的所以比其他第三方远程控制工具使用更方便更灵活。
总结下使用ssh远程执行命令需要注意点:
一般我们会使用ssh ip "执行命令"这种格式来执行远程是shell命令,但是如果是简单的一些操作还好,比如cd,rm,ls,mv等命令一般不会出问题
,但是如果你的脚本任务是,杀死多台机器上的hadoop或者elasticsearch进程,你会怎么做?
伦理片 http://wwwdotdycom/
直接使用:
ssh h1 "kill -9 `jps | grep Elastic | gawk '{print $1}' ` " 杀死es进程,你会发现,它竟然没有生效? 明明在本地执行
kill -9 `jps | grep Elastic | gawk '{print $1}' `
这个命令是可以生效的,为啥,放到远程执行命令中就失效了呢?
其实原因很简单,就是因为没有转义造成的,包括awk变量名引用都需要转义,否则,你会发现,虽然能执行,但结果依旧是不准确的,注意linux中
单引号(所有命令均被当成普通字符处理)
双引号(可引用变量名)
反引号(可以执行linux脚本命令)的区别
看最终的正确的写法:
Java代码
ssh $host " es_pid=\`jps | grep Elasticsearch | gawk '{print \$1}'\` && kill \$es_pid "
远程控制是在网络上由一台电脑(主控端Remote;客户端)远距离去控制另一台电脑(被控端Host;服务器端)的技术,这里的远程不是字面意思的远距离,一般指通过网络控制远端电脑,不过,大多数时候我们所说的远程控制往往指在局域网中的远程控制而言。
0条评论