Linux命令——远程命令
Linux远程命令
- ssh命令
- scp命令
- rsync命令
scp命令,scp命令 和 rsync命令的区别:
- cp 是 本地复制 文件和目录的命令。
- scp 是 远程复制 文件和目录的命令。
- rsync 是远程同步数据和本地同步数据的命令。它使用rsync算法进行数据同步,这种算法只传送两个文件的不同部分 。而不是每次都整份传送,因此速度相当快
1.ssh命令 :通过sshd服务远程连接并控制主机 参考在本地shell脚本中ssh到远程服务器并执行命令
语法1:ssh [参数] username@hostname \’command\’ 使用sshd服务 远程连接hostname服务器并执行command命令。执行完command命令后会自动退出远程登陆。
参数:
- -q 静默模式 不显示传输进度条
例子:
前提 两台linux服务器,都开启了sshd服务,并且设置允许密码登陆,并且都已知 登陆用户名 密码和公网ip
本地linux系统 username@hostname 是 root/VM_0_8_centos。
远程服务器linux系统 username@hostname 是 root/iZm5e7w3fl4af58g6kpnd2Z
#ssh 远程登陆 服务器并执行命令后 自动退出
[root@VM_0_8_centos ~]# ssh root@47.104.219.xxx \'mkdir /ss\'
root@47.104.219.229\'s password:
[root@VM_0_8_centos ~]#
语法2:ssh [参数] username@hostname。这种没有command的语法 是远程登陆主机,如果要退出 使用ctrl+d 组合键退出远程控制 或者输入 logout
例子:
#ssh 登陆远程主机
[root@VM_0_8_centos /]# ssh root@47.104.219.xxx
#第一次登陆会有提示
The authenticity of host \'47.104.219.xxx (47.104.219.xxx)\' can\'t be established.
ECDSA key fingerprint is SHA256:zwAo4XVjLzsh6Nt5f4hYOJpIOSblsdHuLivbQh8Xj/s.
ECDSA key fingerprint is MD5:41:af:5b:52:96:b9:37:77:7d:e6:6e:9d:c0:b6:8e:d5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added \'47.104.219.xxx\' (ECDSA) to the list of known hosts.
#输入远程主机root用户的登陆密码
root@47.104.219.xxx\'s password:
Last login: Sun Mar 22 17:50:44 2020 from 47.96.60.xxx
Welcome to Alibaba Cloud Elastic Compute Service !
#登陆成功 显示远程主机的username@hostname
[root@iZm5e7w3fl4af58g6kpnd2Z ~]#
#ctrl + D 组合键 退出远程登陆
[root@iZm5e7w3fl4af58g6kpnd2Z /]# logout
Connection to 47.104.219.xxx closed.
[root@VM_0_8_centos ~]#
2.Linux scp命令:secure copy。Linux系统下 基于ssh登陆 进行安全的 远程文件和目录拷贝命令。参考菜鸟教程 Linux scp命令
scp和cp命令的区别:cp 是普通的文件复制 scp命令 是通过ssh 本机和其他电脑上的复制
语法: scp [可选参数] file_source file_target
- -p:保留原文件的修改时间,访问时间和访问权限。
- -q: 不显示传输进度条。
- -r: 递归复制整个目录
例子 从本地复制到远程 语法: scp [可选参数] local_file remote_file
#从本地复制文件到远程服务器 不指定file_target
[root@VM_0_8_centos mm]# scp -pq /mm/file2 root@47.104.219.xxx:/ss
root@47.104.219.xxx\'s password:
#从本地复制文件到远程服务器 指定file_target 如果远程有file7文件 重写file7文件
[root@VM_0_8_centos mm]# scp -pq /mm/file2 root@47.104.219.xxx:/ss/file7
root@47.104.219.xxx\'s password:
#从本地复制目录到远程服务器
[root@VM_0_8_centos mm]# scp -rpq /mm root@47.104.219.xxx:/ss
root@47.104.219.xxx\'s password:
例子 从远程复制到本地 语法:scp [可选参数] remote_file local_file 只要将从本地复制到远程的命令的后2个参数调换顺序即可
#从远程复制文件到本地 不指定file_target
[root@VM_0_8_centos /]# scp -qp root@47.104.219.xxx:/ss/file2 /ss
root@47.104.219.xxx\'s password:
#从远程复制文件到本地 指定file_target 如果file2存在,会被替换成file3#
[root@VM_0_8_centos ss]# scp -qp root@47.104.219.xxx:/ss/file3 /ss/file2
root@47.104.219.xxx\'s password:
#从远程复制文件夹到本地 本地文件夹ss下再创建文件夹ss
[root@VM_0_8_centos ss]# scp -rqp root@47.104.219.xxx:/ss /ss/
3 Linux rsync命令 : 同步。使用 rsync算法 进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。可以用来本地同步目录或者远程同步数据。
本地同步-命令行语法:rsync [option] source dest
option可选项如下
- -a archive:递归模式,表示以递归方式传输文件,并且保持所有文件属性,等价于 -rtopgDl
- -r recursive: 对子目录以递归模式处理
- -t time 保持文件时间mtime属性。建议任何时候都加上 -t,否则目标文件mtime会设置成系统时间,导致下次更新检查mtime会无效。
- -o owner 保持文件owner(宿主)属性 (super-user only)
- -g group 保持文件group(属组)属性
- -p perms:保持文件perms(权限,不包括特殊权限)属性
- -D –device –specials 选项的组合,即也拷贝设备文件和特殊文件。 (super-user only)
- -l 如果文件时链接文件,则只拷贝链接本身 而非 链接所指向的对象。
例子:本地同步目录 把ss/mm目录下的所有文件 同步到 ss目录下 和 cp -r 命令类似,不过rsync只只传送两个文件的不同部分
[root@VM_0_8_centos /]# rsync ss/mm/* ss -a