linux间用ftp进行文件夹拷贝

时间:2021-07-18 22:30:15

要求,在A机器执行脚本,把A机器的某个目录文件拷贝到B机器。

1、A 机器先安装ftp客户端

$ sudo yum install ftp

2、B机器安装ftp服务端

$ sudo yum -y install vsftpd

2.1、查询B机器是否安装完成,执行后有下面的输出,就是ok的。

$ netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN

2.2、ftp的重启命令

$ sudo service vsftpd restart

 

3、在A机器中编写一个执行脚本

vi upload.sh

#!/bin/bash

#upload dir to remote ftp server
read -p "Input local dir: " updir     #local dir
read -p "Input remote dir: " todir    #remote dir
read -p "Input remote IP: " ip        #remote IP
read -p "Input ftp username: " user   #ftp username
read -p "Input password: " password   #password

sss=`find $updir -type d -printf $todir/'%P\n'| awk '{if ($0 == "")next;print "mkdir " $0}'`
aaa=`find $updir -type f -printf 'put %p %P \n'`
ftp -nv $ip <<EOF
user $user $password
type binary
prompt
$sss
cd $todir
$aaa
quit
EOF

4、再给这个.sh文件赋予执行权限

chmod +x upload.sh

 

5、执行sh

./upload.sh

输入五个参数

/home/admin/testA

aa

1xx.xx.xxx.xx

admin

xxx

 

注意点:都是在admin账户下操作,所以用了sudo借用root权限, root账户可以省去。

目标服务器只能写一层目录aa,不能写多层aa/bb/cc