Linux远程命令

  1. ssh命令
  2. scp命令
  3. rsync命令

scp命令,scp命令 和 rsync命令的区别

  1. cp    是  本地复制 文件和目录的命令。
  2. scp  是  远程复制 文件和目录的命令。
  3. rsync 是远程同步数据和本地同步数据的命令。它使用rsync算法进行数据同步,这种算法只传送两个文件的不同部分 。而不是每次都整份传送,因此速度相当快 

1.ssh命令 :通过sshd服务远程连接并控制主机 参考在本地shell脚本中ssh到远程服务器并执行命令

语法1ssh [参数]  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 ~]# 

语法2ssh [参数]  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

 

版权声明:本文为dreamstar99原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dreamstar99/p/13798045.html