Linux远程操作(rcp/rsh)命令实战
1. rcp
1.1为使用 rcp 做准备
要使用
rcp
,需要具备以下条件:
(
1
)如果系统中有
/etc/hosts
文件,系统管理员应确保该文件包含要与之进行通信的远程主机的项。
/etc/hosts
文件中有一行文字,其中包含每个远程系统的以下信息:
internet_address official_name alias
例如:
9
.
186
.
10.*** blade1.ibm.com.cnblade1
(
2
)
.rhosts
文件
.rhosts
文件位于远程系统的主目录下,其中包含本地系统的名称和本地登录名。
例如,远程系统的
.rhosts
文件中的项可能是:
blade1 root
其中,
blade1
是本地系统的名称,
root
是本地登录名。这样,
blade1
上的
root
即可在包含
.rhosts
文件的远程系统中来回复制文件。
1.2 配置过程
只对
root
用户生效
1.
在双方
root
用户根目录下建立
.rhosts
文件
,
并将双方的
hostname
加进去
.
在此之前应在双方的
/etc/hosts
文件中加入对方的
IP
和
hostname
2.
把
rsh
服务启动起来
,redhat
默认是不启动的。
方法:用执行
ntsysv
命令
,
在
rsh
选项前用空格键选中
,
确定退出。
然后执行:
service xinetd restart
即可。
3.
到
/etc/pam.d/
目录下
,
把
rsh
文件中的
auth required pam_securetty.so
一行用“
#
”注释掉即可。(只有注释掉这一行,才能用
root
用户登录)
1.3 命令使用
将文件复制到远程系统
要将本地系统中的文件复制到远程系统,请使用以下命令:
rcplocal_fileremote_hostname:remote_fileEnter
注意,如果当前目录下没有
local_file
,则除本地文件名外,还需要提供相对路径(自当前目录开始)或绝对路径名(自
/
开始)。
仅当希望将
remote_hostname
上的
remote_file
放到其他目录(远程主目录除外)下时,才需要为其指定完整的(绝对)路径。
示例
将当前目录下的
myfile
复制到名为
blade3
的远程系统:
rcp myfile blade3:/home/root/otherdirEnter
在这种情况下,
myfile
被复制到远程子目录
otherdir
下,名称仍为
myfile
。如果仅提供了远程主机名,
rcp
将把
myfile
复制到远程主目录下,名称仍为
myfile
。
还可以在目的目录中包含文件名。例如,将文件复制到名为
blade3
的系统中:
rcp myfile blade3:/home/root/otherfileEnter
在这种情况下,将
myfile
复制到远程目录
root
下并将其命名为
otherfile
。
从远程系统复制文件
要将远程系统中的文件复制到本地目录下,请使用以下语法:
rcp remote_hostname:remote_file local_fileEnter
示例
将远程系统
blade3
中的
myfile
复制到当前目录:
rcp blade3:/home/root/myfile .Enter
点
(.)
是“当前目录”的简写形式。在这种情况下,远程目录中的
myfile
被复制到当前目录下,名称仍为
myfile
。
如果希望用新名称复制文件,请提供目标文件名。
如果希望将
myfile
复制到本地系统中的其他目录下,请使用以下绝对或相对路径名:
rcp blade3:/home/root/myfile otherdir/ Enter
或者,如果希望用其他文件名将文件复制到其他目录下:
rcp blade3:/home/root/myfile otherdir/otherfile Enter
将目录复制到远程系统
要将本地目录及其文件和子目录复制到远程系统,请同时使用
rcp
和
-r
(递归)选项。
语法如下:
rcp –r local_dir remote_hostname:remote_dir Enter
如果当前目录下没有
local_dir
,则除本地目录名外,还需要提供相对路径名(自当前目录开始)或绝对路径名(自
/
顶级目录开始)。另外,如果主目录下没有
remote_dir
,则
remote_dir
将需要一个相对路径(自主目录开始)或绝对路径(自
/
开始)。
示例
要将名为
work
的子目录完整地复制到
blade1
远程计算机中的主目录下名为
products
的目录,请键入以下内容:
rcp –r work blade1:/home/root/products Enter
此命令在
blade1:/home/root/products
下创建名为
work
的目录及其全部内容(假定
/home/root/products
已存在于
blade1
中)。
本示例假定用户处于包含
work
的本地目录下。否则,必须提供该目录的相对或绝对路径,如
/home/root/work
。
从远程系统复制目录
要将远程目录及其所有文件和子目录复制到本地目录,请在以下语法中使用
rcp
和
-r
(递归)选项。
rcp –r remote_hostname:remote_dir local_dir Enter
示例
要将名为
work
的远程目录复制到当前目录,请键入以下内容:
rcp –r blade1:/home/root/work .Enter
点
(.)
表示当前目录。将在此目录下创建
work
目录。
2. rsh
2.1 rsh使用条件 同1.1
2.2 rsh配置过程
直接
rsh
作为
root.
a.
在服务器上运行
/urs/bin/ntsysv
选中
rexec,rlogin,rsh
三项服务。
b.
运行
#/sbin/servicexinetdrestart
启动该三项服务。
c.
运行
#echo"rexec">>/etc/securetty;echo"rlogin">>/etc/securetty;echo"rsh">>/etc/securetty
d.
在服务器上运行
#echo"
你的
ip
地址
root">>/root/.rhosts
或者
#echo"
你的主机名
root">>/root/.rhosts
且确保在服务器上的
/etc/hosts
中有
主机名和
ip
地址的映射关系
e
到
/etc/pam.d/
目录下
,
把
rexec,rlongin,rsh
文件中的
auth required /lib/security/pam_securetty.so
一行用“
#
”注释掉即可。(只有注释掉这一行,才能用
root
用户登录)
2.3 rsh命令用法
命令
rsh
有两个一般的参数,一个系统名和一个
Linux
命令。语法如下所示:
$rsh remote-sytem-neame Linux-command
在下面的例子中,
rsh
命令将在远程系统
blade1
中执行一个
ls
命令以列出在
blade1
中目录
/home/root
中的文件。
$rsh blade1 ls /home/root
除非是引用特定字符,否则它将被本系统解释转换,对于控制标准输出的特殊字符更是如此,象重定向或管道字符。下面的例了中列出远程系统上的文件,并把它们送到本系统中的标准输出。重定向操作由本地系统解释,并把输出改向到本地系统中的文件
myfiles
中。
$rsh blade1 ls /home/root>myfiles
如您引用一个特定字符,它将成为
Linux
命令的一部分被远程系统解释。引用重定向操作符将允许您在远程系统中执行重定向操作。下面的例子中,引用一个重定向操作符。它变成
Linux
命令的一部分,包括命令的参数,文件名
myfile
。命令
ls
产生一列文件名并把它们重定向到远程系统中的一个文件
myfile
中。
$rsh blade1 ls /home/root '>' myfiles
对于管道操作也是如此。下面例子中第一个命令输出一列文件到本地的打印机中。标准的输出能过管道输出到您的在线打印机中。第二个命令中,一列文件将输出远程系统的打印机上。管道线被远程系统解释。输送标准输出到远程系统的打印机上。
$rsh blade1 ls /home/root | lpr
$rsh blade1 ls /home/root '|' lpt