linux如何跨服务器复制文件夹脚本

fiy 其他 21

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,可以使用rsync命令来实现跨服务器复制文件夹的操作。rsync是一种快速、灵活的远程文件同步工具,可以传输增量数据,节省带宽,并通过加密通道进行数据传输。

    下面是一个示例脚本,演示如何使用rsync在两台服务器之间复制文件夹:

    #!/bin/bash
    
    # 源服务器信息
    source_user="your_username"
    source_server="your_source_server"
    source_folder="/path/to/source_folder"
    
    # 目标服务器信息
    target_user="your_username"
    target_server="your_target_server"
    target_folder="/path/to/target_folder"
    
    # rsync复制命令
    rsync -avz -e ssh $source_user@$source_server:$source_folder $target_user@$target_server:$target_folder
    

    以上脚本使用了rsync的-a选项来保留文件的所有属性,-v选项来显示详细的复制过程,-z选项进行压缩传输,-e选项指定了通过ssh进行连接。

    你需要根据实际情况修改脚本中的用户、服务器和文件夹路径信息,并确保两台服务器之间已经建立了ssh连接。

    保存脚本并给予执行权限,然后可以通过运行该脚本来实现跨服务器复制文件夹的操作。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要在Linux上跨服务器复制文件夹,可以使用一些脚本来完成这个任务。下面是一种简单的脚本方法:

    1. 首先,需要在本地服务器和目标服务器上设置SSH密钥对,以便可以进行无密码的远程登录。这可以通过使用ssh-keygen命令生成密钥对,并将公钥复制到目标服务器上的~/.ssh/authorized_keys文件中来完成。

    2. 创建一个shell脚本,并赋予其执行权限。可以使用touch命令创建一个新的脚本文件,然后使用chmod命令赋予其执行权限。

    touch copy_folder.sh
    chmod +x copy_folder.sh
    
    1. 在脚本文件中,使用scp命令来复制文件夹。scp命令可以通过SSH连接远程服务器,并复制文件夹。
    #!/bin/bash
    
    SOURCE_SERVER=<源服务器IP地址>
    SOURCE_DIR=<源文件夹路径>
    DEST_SERVER=<目标服务器IP地址>
    DEST_DIR=<目标文件夹路径>
    
    scp -r $SOURCE_SERVER:$SOURCE_DIR $DEST_SERVER:$DEST_DIR
    

    在脚本中,将<源服务器IP地址>替换为源服务器的实际IP地址,<源文件夹路径>替换为要复制的源文件夹的实际路径,<目标服务器IP地址>替换为目标服务器的实际IP地址,<目标文件夹路径>替换为要复制到的目标文件夹的实际路径。

    1. 保存脚本文件,并运行。
    ./copy_folder.sh
    

    脚本将使用scp命令远程连接源服务器,并将源文件夹复制到目标服务器的目标文件夹中。

    1. 可以在脚本中添加更多的功能,比如增加错误处理、日志记录等。也可以使用其他命令行工具或脚本语言来实现跨服务器的文件夹复制功能。
    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux系统中,可以使用rsync工具来跨服务器复制文件夹。rsync是一款功能强大的文件同步工具,它可以快速、安全地传输和复制文件夹。

    下面是一个简单的脚本示例,用于跨服务器复制文件夹:

    #!/bin/bash
    
    # 源服务器信息
    src_server="192.168.1.100"
    src_username="user"
    src_password="password"
    src_folder="/path/to/source/folder/"
    
    # 目标服务器信息
    dest_server="192.168.1.200"
    dest_username="user"
    dest_password="password"
    dest_folder="/path/to/destination/folder/"
    
    # 使用rsync命令进行同步
    rsync -avz --progress --delete -e "sshpass -p $src_password ssh -o StrictHostKeyChecking=no" $src_username@$src_server:$src_folder $dest_username@$dest_server:$dest_folder
    

    上述脚本使用rsync命令进行文件夹的复制和同步。其中,src_server变量表示源服务器的IP地址,src_usernamesrc_password变量表示登录源服务器的用户名和密码,src_folder变量表示源文件夹的路径。

    同样地,dest_server变量表示目标服务器的IP地址,dest_usernamedest_password变量表示登录目标服务器的用户名和密码,dest_folder变量表示目标文件夹的路径。

    脚本中使用了rsync命令的一些常用选项,如-avz表示以归档模式复制文件夹,--progress表示显示复制进度,--delete表示删除目标文件夹中源文件夹不存在的文件。-e "sshpass -p $src_password ssh -o StrictHostKeyChecking=no"表示使用sshpass命令来自动输入密码,并禁用StrictHostKeyChecking以避免交互式确认。

    以上是一个简单的跨服务器复制文件夹的示例脚本。你可以根据需要修改脚本中的变量值来适应自己的环境。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部