在服务器之间复制文件

时间:2019-08-05 20:01:41

标签: bash scp

我正在尝试创建一个简单的脚本,该脚本会将文件从server1复制到服务器2或从服务器2复制到server1(取决于我从何处运行脚本) 我创建了一个脚本,该脚本应该识别我在哪台服务器上,获取源文件夹和目标文件夹并执行。

例如

sh script.sh /home/test /destest

应将文件从测试文件夹复制到另一台服务器,以解除测试文件夹

但是某些东西对我不起作用,我不断得到

  

没有这样的文件或目录cp:

有什么想法吗?

#!/bin/bash

SRC1=$1
DEST=$3
BOX=$(hostname)
if [ $BOX=server1 ]; then 
sudo scp $SRC1 server2:\ $DEST

else
sudo scp -v $SRC1/* server1:\ $DEST
fi

2 个答案:

答案 0 :(得分:3)

请不要在server1:server2:之后放置空格。

=测试中,if周围需要一个空格。

除非该值包含空格,否则几乎应该总是用引号引起来,除非您实际上希望将其拆分为单独的参数。

#!/bin/bash

SRC1=$1
DEST=$3
BOX=$(hostname)
if [ "$BOX" = server1 ]; then 
    sudo scp "$SRC1" "server2:$DEST"
else
    sudo scp -v "$SRC1"/* "server1:$DEST"
fi

答案 1 :(得分:0)

这是我现在正在使用的固定脚本:)

#!/bin/bash
BOX=$(hostname)
if [ "$BOX" = server1 ]; then
sudo scp "$1" user@server2:\ "$2"
else
sudo scp "$1"/* user@server1:\ "$2"
fi