缘由
工作中经常用ftp上传文件,共享给他人,在免交互模式下,可以使用shell脚本,固化用户名、密码等固定输入的重复信息
shell脚本例子
#!/bin/bash
# 根据入参指定目录或当前目录下,根据固定目录结构和固定目标文件信息,自动免交互上传文件
# 借鉴jQuery自动推导思想
funciton ftpfile()
{
# without any dir para
if [ -z "$1" ]; then
srcDir=$(pwd)
else
srcDir=$1
fi
# begin infer the path to file
if [ -d $srcDir/childDir ]; then
srcFileDir=$srcDir/childDir1/childDir11
fi
if [ -d $srcDir/childDir1 ]; then
srcFileDir=$srcDir/childDir11
fi
# the srcFile must be in the srcFileDir
# find the target file if with glob variant using 'ls' child command
srcFile=$(ls $srcFileDir/someFile*)
dstDir="$(date +%Y%m%d_%H_%M_%S)"
ftp -ivn 192.16.8.8 << EOF
user ftpUser plainPassword
bin
cd /someDstDir
mkdir $dstDir
cd $dstDir
put $srcFile ${srcFile##/*/}
bye
EOF
}
安全模式
借助ssh-keygen
和ssh-copy-id
免密配置,将登录用户的可信任公钥拷贝到ssh服务器,以实现ssh
免密登录、scp
免密拷贝,以及’ssh destination command '执行脚本等。
sftp
因为没有尝试过,但是应该也可以免密、免交互