shell中循环Ftp的效率问题

shell中循环Ftp的效率问题,第1张

解决方法很多,最好的备份方法,当然是用 rsync 了, 也可以用 tar的方法。但是如果服务器只提供了 ftp 访问,没有 rsync 或者 ssh 等方法了话,也是可以改进 你ftp的效率的,思路是先统计处你要put的目录名,然后按照这些名字来产生 所有ftp 的命令,并存入一个文件中,然后以这个文件作为 ftp 命令的输入,就可以只链接一次ftp就把所有文件都上传了。 比如我下面的例子中,就把所有命令都存到 cmd 文件中,然后用这个文件作为 ftp 命令的输入。对此还有问题,可以baidu hi我。
rm -rf cmd
echo "user test xxx\
bin
prompt" > cmd
for ftpD in $(find /backup/ftp/ -type d -name 'Dat' -mtime -1)
do
dir=$(basename $ftpD)
echo "lcd /backup/ftp/$dir\
cd /
mkdir $dir
mput dat" >> cmd
done
# cmd file ok, time to ftp
ftp -n 服务器IP < cmd

Linux下用shell编程实现ftp自动登录上传文件,代码如下:

####把本地/home/databachup/ash up ftp /home/databackup 下####
#!/bin/bash
ftp -n<<!
open FTP服务器IP地址
user FTP账户 FTP密码
binary
cd /home/data
lcd /home/databackup
prompt
put ash ash  #要上传的文件
close
bye
!

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。

2、在linux命令行下输入shell指令:ps -ef | grep ftp。

3、最后,按下回车键执行shell指令,此时会看到ftp进程被成功查询到,说明ftp功能是开启状态。

先编辑脚本backupsh
#/bin/bash
ls -lh /var/ftp/pub >> /var/log/pubdirlog
rm -rf /var/ftp/pub/
添加计划任务
输入指令 crontab -e
添加一条记录
30 17 5 root sh /usr/bin/backupsh
添加计划任务编辑/etc/crontab文件同样可以达到目的

下面这个是我一直在用的,会检查ftp错误

#!/bin/sh
ftp_put()
{
# -n:不使用auto-login;-i:不使用交互式提示输入
ftp -n -i $ipAddr <<EOF
quote USER $username
quote PASS $password
cd b
lcd a
binary
put $myfile
bye
EOF
}

ipAddr=ftp地址
username=你的ftp用户名
password=你的ftp密码
myfile=你要传的文件名(只要名称无需路径)
putErrlog=用于记录ftp错误的日志文件

ftp_put >/dev/null 2>$putErrlog #ftp错误导入日志文件
bytes=`wc -c $putErrlog | awk '{print $1}'` #检查错误日志文件的字节大小
if [ $bytes -ne 0 ]; then #大小不为0说明发生了错误,之后可以手动打开文件检查错误原因
echo "FTP put failed!"
exit 1
else
echo "FTP put successfully!"
fi
exit 0

#!/bin/bash
# ----------请自定义如下内容----------
user=root  #FTP用户名
password=root #密码
remoteDir=/tmp #远程服务器FTP目录 
# ------------------------------------
currTime=$(date "+%Y%m%d%H%M%S")
filename=${currTime}txt
touch $filename
sync
ftp -in <<-EOF
   user $user $password
   cd $remoteDir
   bin
   put $filename
   bye
EOF


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13416849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-01
下一篇 2023-08-01

发表评论

登录后才能评论

评论列表(0条)

保存