制作Ubuntu下带参数的远程拷贝命令脚本

在 Linux 系统中,rcp 和 scp 都是用于远程文件传输的命令工具。

  1. rcp(Remote Copy Protocol):rcp 是一种远程文件复制协议,用于在本地和远程主机之间传输文件。它使用 rsh(Remote Shell)协议来建立远程连接,并使用明文传输数据。使用 rcp 命令可以将文件从本地复制到远程主机,或者从远程主机复制文件到本地。

示例:

rcp local_file                             remote_username@remote_ip:remote_file
rcp remote_username@remote_ip:remote_file  local_file
  1. scp(Secure Copy Protocol):scp 是基于 SSH(Secure Shell)协议的远程文件复制工具,提供了更高的安全性。它使用 SSH 连接进行加密传输,确保数据的机密性和完整性。与 rcp 类似,scp 也可以在本地和远程主机之间复制文件。

示例:

scp local_file                            remote_username@remote_ip:remote_file
scp remote_username@remote_ip:remote_file local_file

cp 和 scp 的作用是将文件从本地主机复制到远程主机,或者从远程主机复制文件到本地主机。这在需要在不同主机之间传输文件时非常有用,例如备份文件、同步数据等。同时,由于 scp 使用 SSH 连接进行加密传输,因此在需要保证传输安全性的场景中更常用。

一般局域网中我们使用rcp即可。

如果我们要从一台机器把文件和目录同步到其他机器,可以制作脚本文件,如下runRcp.sh 脚本就是实现从本机将/home/xtwh/kaifa/exe/下所有文件和目录拷贝到远程机器相同的目录下:

vi runRcp.sh 
rcp -rp /home/xtwh/kaifa/exe/* 192.168.30.42:/home/xtwh/kaifa/exe/

但是这样每拷贝一个机器就要更改脚本。

要将脚本文件 runRcp.sh 改为带参数的形式,可以使用 shell 脚本的特殊变量 $1$2 等来接收传入的参数。以下是修改后的脚本示例:

#!/bin/bash

# 检查参数数量
if [ $# -ne 1 ]; then
    echo "Usage: $0 <destinationIp>"
    exit 1
fi

# 获取传入的参数
destinationIp=$1

# 执行 rcp 命令
rcp -rp /home/xtwh/kaifa/exe/* "$destinationIp":/home/xtwh/kaifa/exe/

在上述示例中,$1 表示第一个参数,即目标地址。在脚本开始处添加参数数量检查,确保只有一个参数传入。脚本接收目标地址参数后,将其赋值给 destination_address 变量。然后,使用变量 "$destinationIp" 替代原始的固定目标地址,实现动态传入参数。

保存修改后的脚本文件并执行时,可以通过以下方式传入目标地址参数:

./runRcp.sh 192.168.30.42

其中,192.168.30.42 将作为目标地址参数传入脚本就实现了想要的功能,这样这同一个脚本可以轻松实现多个机器的文件和目录同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ubuntu系统中,有很多常用的命令可以帮助我们进行文件和系统操作,包括文件及目录操作命令、磁盘及系统操作命令、文件压缩及解压命令、网络命令和帮助命令等。以下是一些常用的Ubuntu系统命令: 1. 文件及目录操作命令: - ls:列出目录内容 - cd:切换目录 - pwd:显示当前目录 - mkdir:创建新目录 - rm:删除文件或目录 - cp:复制文件或目录 - mv:移动文件或目录 - touch:创建空文件 - cat:查看文件内容 - grep:在文件中搜索指定内容 2. 磁盘及系统操作命令: - fdisk:用于给磁盘进行分区,查看磁盘情况 - df:显示文件系统的磁盘空间使用情况 - du:查看文件或目录的磁盘使用情况 - top:实时显示系统的资源占用情况 - ps:显示当前运行的进程信息 - kill:终止指定进程 - reboot:重启系统 - shutdown:关机 3. 文件压缩及解压命令: - tar:打包和解压文件 - gzip:压缩文件 - gunzip:解压缩文件 - zip:压缩文件和目录 - unzip:解压缩文件 4. 网络命令: - ping:测试网络连接 - ifconfig:显示和配置网络接口 - netstat:显示网络连接和统计信息 - ssh:远程登录安全外壳协议 - scp:在本地主机和远程主机之间安全地复制文件 5. 帮助命令: - man:显示某个命令的帮助手册 - help:显示Shell内置命令的帮助信息 这些只是Ubuntu系统中的一些常用命令,更详细的命令可以在命令行中使用man命令查看相应的帮助手册。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Ubuntu常用命令大全](https://blog.csdn.net/weixin_44607113/article/details/126057644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值