在Linux中通过FTP方式上传文件
2009-05-07 13:08
357 查看
在LINUX中通过FTP方式上传文件或下载文件
以下是简单版本
[fengsy@ctihost len.shell]$ cat Leave
#Copy File From FtpServ To Local
#Author : Feng ShuYan
leave()
{
#local FILE
echo $*
File_Ls=`ls -l $4 |awk '{print $9}'`
sleep 2
for File_Name in $File_Ls ;do
if [ -f File_Name ];then
continue
else
File_List=$File_List" "`echo $File_Name|awk -F, '{print $1}'`
fi
done
echo $File_List
echo $File_List > File_List.tmp
echo open $1 > ftpopt.tmp
echo user $2 $3 >> ftpopt.tmp
echo cd $5 >> ftpopt.tmp
echo lcd $4 >> ftpopt.tmp
for File_Name in $File_List;do
echo put $File_Name $File_Name.tmp >>ftpopt.tmp
echo rename $File_Name.tmp $File_Name >>ftpopt.tmp
done
echo bye >> ftpopt.tmp
cat ftpopt.tmp | ftp -n -v
Error=$?
if [ $? -ne 0 ];then
echo "File $FILE transfer(FTP) fail!!!! Please check if system $1 is normal!"
return Error
fi
}
if [ $# -ne 5 ]; then
echo "Usage:leave <IpAddr> <User> <Pass> <SrcDir> <DestDir>"
else
leave $1 $2 $3 $4 $5
fi
以下是完整版本
[pickup@ZZJK_X3650_2 bin]$ cat Dispatch
# FILE: Dispatch
# Author: Yang GuangLiang
# Function: Ftp Data file for IASP!
#
dispatched_file_list()
{
TDATE=`date +%Y%m%d`
HOUR=`date +%H`
echo open $1 >dipatch_data.tmp
echo user $2 $3 >>dipatch_data.tmp
echo cd $4 >>dipatch_data.tmp
echo mdel *.tmp >>dipatch_data.tmp
echo mdel *.temp >>dipatch_data.tmp
if [ "$DISPATCH_ALL" = "1" ]; then
echo "nlist * dispatched_lst.tmp" >>dipatch_data.tmp
else
echo nlist *"$TDATE"* dispatched_lst.tmp >>dipatch_data.tmp
if [ $HOUR -lt 4 ]; then
LDATE=`cat yesterday.txt`
echo nlist *"$LDATE"* dispatched_lst1.tmp >>dipatch_data.tmp
else
if [ $HOUR -gt 21 ]; then
echo $TDATE > yesterday.txt
fi
fi
fi
echo bye >>dipatch_data.tmp
cat dipatch_data.tmp | ftp -n -v -i
ERROR_NO=$?
if [ $ERROR_NO -ne 0 ]; then
echo "Get dispatched file list fail!!!! Please check if system $1 is normal!"
return $ERROR_NO
fi
rm dipatch_data.tmp
FILE_LST=`cat dispatched_lst.tmp`
rm dispatched_lst.tmp
if [ -e dispatched_lst1.tmp ];then
FILE_LST="$FILE_LST "`cat dispatched_lst1.tmp`
rm dispatched_lst1.tmp
fi
}
dispatch_data()
{
local FILE
echo open $1 > dipatch_data.tmp
echo user $2 $3 >> dipatch_data.tmp
echo cd $5 >> dipatch_data.tmp
echo lcd $4 >> dipatch_data.tmp
for FILE in $FILE_LST; do
echo put $FILE $FILE.tmp >> dipatch_data.tmp
echo rename $FILE.tmp $FILE >> dipatch_data.tmp
done
echo bye >> dipatch_data.tmp
cat dipatch_data.tmp | ftp -n -v
ERROR_NO=$?
cp dipatch_data.tmp aa
rm dipatch_data.tmp
if [ $ERROR_NO -ne 0 ]; then
echo "File $FILE transfer(FTP) fail!!!! Please check if system $1 is normal!"
return $ERROR_NO
fi
}
put_file_list()
{
local CUR_PATH
CUR_PATH=`pwd`
cd $1
FILE_LIST1=`ls -l|grep -v ".tmp" |grep -v "*.temp"|awk '{print $5","$9}'`
sleep 2
FILE_LIST2=`ls -l|grep -v ".tmp" |grep -v "*.temp"|awk '{print $5","$9}'`
FILE_LIST=""
for FILE in $FILE_LIST1; do
FOUND=`echo $FILE_LIST2|grep $FILE`
if [ "$FOUND" = "" ]; then
echo Not found $FILE
else
FILE_SIZE=`echo $FILE|awk -F, '{print $1}'`
if [ ! "$FILE_SZIE" = "0" ]; then
FILE_LST=$FILE_LST" "`echo $FILE|awk -F, '{print $2}'`
fi
fi
done
# FILE_LST=`ls`
cd $CUR_PATH
}
dispatch()
{
if [ $# -ne 5 ]; then
echo "Usage: Dispatch <Server IP> <User> <Passwd> <LocalDir> <RemoteDir>"
return 1
fi
if [ ! -d $4 ]; then
echo LocalDir $4 does not exist!!!
return 1
fi
echo
echo Make put file list ......
put_file_list $4
echo end.
if [ "$FILE_LST" = "" ]; then
echo No file to dispatch!!!
return 1
fi
echo Put file list: $FILE_LST
echo
echo Dispatch data file ......
dispatch_data $1 $2 $3 $4 $5
echo end.
echo
echo Make dispatched file list ......
dispatched_file_list $1 $2 $3 $5
echo end.
if [ "$FILE_LST" = "" ]; then
echo No file dispatched!!!
return 1
fi
echo Dispatched file list: $FILE_LST
echo
echo Delete dispatched file ......
CUR_PATH=`pwd`
echo local path $4
echo delete file list: $FILE_LST
cd $4
pwd
rm $FILE_LST
cd $CUR_PATH
echo end.
return 0
}
以下是简单版本
[fengsy@ctihost len.shell]$ cat Leave
#Copy File From FtpServ To Local
#Author : Feng ShuYan
leave()
{
#local FILE
echo $*
File_Ls=`ls -l $4 |awk '{print $9}'`
sleep 2
for File_Name in $File_Ls ;do
if [ -f File_Name ];then
continue
else
File_List=$File_List" "`echo $File_Name|awk -F, '{print $1}'`
fi
done
echo $File_List
echo $File_List > File_List.tmp
echo open $1 > ftpopt.tmp
echo user $2 $3 >> ftpopt.tmp
echo cd $5 >> ftpopt.tmp
echo lcd $4 >> ftpopt.tmp
for File_Name in $File_List;do
echo put $File_Name $File_Name.tmp >>ftpopt.tmp
echo rename $File_Name.tmp $File_Name >>ftpopt.tmp
done
echo bye >> ftpopt.tmp
cat ftpopt.tmp | ftp -n -v
Error=$?
if [ $? -ne 0 ];then
echo "File $FILE transfer(FTP) fail!!!! Please check if system $1 is normal!"
return Error
fi
}
if [ $# -ne 5 ]; then
echo "Usage:leave <IpAddr> <User> <Pass> <SrcDir> <DestDir>"
else
leave $1 $2 $3 $4 $5
fi
以下是完整版本
[pickup@ZZJK_X3650_2 bin]$ cat Dispatch
# FILE: Dispatch
# Author: Yang GuangLiang
# Function: Ftp Data file for IASP!
#
dispatched_file_list()
{
TDATE=`date +%Y%m%d`
HOUR=`date +%H`
echo open $1 >dipatch_data.tmp
echo user $2 $3 >>dipatch_data.tmp
echo cd $4 >>dipatch_data.tmp
echo mdel *.tmp >>dipatch_data.tmp
echo mdel *.temp >>dipatch_data.tmp
if [ "$DISPATCH_ALL" = "1" ]; then
echo "nlist * dispatched_lst.tmp" >>dipatch_data.tmp
else
echo nlist *"$TDATE"* dispatched_lst.tmp >>dipatch_data.tmp
if [ $HOUR -lt 4 ]; then
LDATE=`cat yesterday.txt`
echo nlist *"$LDATE"* dispatched_lst1.tmp >>dipatch_data.tmp
else
if [ $HOUR -gt 21 ]; then
echo $TDATE > yesterday.txt
fi
fi
fi
echo bye >>dipatch_data.tmp
cat dipatch_data.tmp | ftp -n -v -i
ERROR_NO=$?
if [ $ERROR_NO -ne 0 ]; then
echo "Get dispatched file list fail!!!! Please check if system $1 is normal!"
return $ERROR_NO
fi
rm dipatch_data.tmp
FILE_LST=`cat dispatched_lst.tmp`
rm dispatched_lst.tmp
if [ -e dispatched_lst1.tmp ];then
FILE_LST="$FILE_LST "`cat dispatched_lst1.tmp`
rm dispatched_lst1.tmp
fi
}
dispatch_data()
{
local FILE
echo open $1 > dipatch_data.tmp
echo user $2 $3 >> dipatch_data.tmp
echo cd $5 >> dipatch_data.tmp
echo lcd $4 >> dipatch_data.tmp
for FILE in $FILE_LST; do
echo put $FILE $FILE.tmp >> dipatch_data.tmp
echo rename $FILE.tmp $FILE >> dipatch_data.tmp
done
echo bye >> dipatch_data.tmp
cat dipatch_data.tmp | ftp -n -v
ERROR_NO=$?
cp dipatch_data.tmp aa
rm dipatch_data.tmp
if [ $ERROR_NO -ne 0 ]; then
echo "File $FILE transfer(FTP) fail!!!! Please check if system $1 is normal!"
return $ERROR_NO
fi
}
put_file_list()
{
local CUR_PATH
CUR_PATH=`pwd`
cd $1
FILE_LIST1=`ls -l|grep -v ".tmp" |grep -v "*.temp"|awk '{print $5","$9}'`
sleep 2
FILE_LIST2=`ls -l|grep -v ".tmp" |grep -v "*.temp"|awk '{print $5","$9}'`
FILE_LIST=""
for FILE in $FILE_LIST1; do
FOUND=`echo $FILE_LIST2|grep $FILE`
if [ "$FOUND" = "" ]; then
echo Not found $FILE
else
FILE_SIZE=`echo $FILE|awk -F, '{print $1}'`
if [ ! "$FILE_SZIE" = "0" ]; then
FILE_LST=$FILE_LST" "`echo $FILE|awk -F, '{print $2}'`
fi
fi
done
# FILE_LST=`ls`
cd $CUR_PATH
}
dispatch()
{
if [ $# -ne 5 ]; then
echo "Usage: Dispatch <Server IP> <User> <Passwd> <LocalDir> <RemoteDir>"
return 1
fi
if [ ! -d $4 ]; then
echo LocalDir $4 does not exist!!!
return 1
fi
echo
echo Make put file list ......
put_file_list $4
echo end.
if [ "$FILE_LST" = "" ]; then
echo No file to dispatch!!!
return 1
fi
echo Put file list: $FILE_LST
echo
echo Dispatch data file ......
dispatch_data $1 $2 $3 $4 $5
echo end.
echo
echo Make dispatched file list ......
dispatched_file_list $1 $2 $3 $5
echo end.
if [ "$FILE_LST" = "" ]; then
echo No file dispatched!!!
return 1
fi
echo Dispatched file list: $FILE_LST
echo
echo Delete dispatched file ......
CUR_PATH=`pwd`
echo local path $4
echo delete file list: $FILE_LST
cd $4
pwd
rm $FILE_LST
cd $CUR_PATH
echo end.
return 0
}
相关文章推荐
- Linux: 通过命令行上传文件到ftp服务器
- Linux(RHEL5.4)通过Ftp put命令上传导致文件损坏的解决办法
- Linux通过命令方式远程上传文件
- Linux下允许root用户通过FTP上传文件
- Windows通过FTP上传、下载文件到Linux
- 通过ftp上传文件到linux
- Java 使用ftp的方式上传文件到linux,并实现删除,下载
- 如何通过SecureCRT中命令方式上传文件到LINUX上
- Linux下允许root用户通过FTP上传文件
- window服务器通过sftp从linux下载文件,并ftp上传到window服务器
- linux和windows之间上传 下载文件 非ftp方式
- linux 登陆ftp及文件上传及下载 【转】
- java通过ftp方式读取文件,并解析入库
- 通过Ajax方式上传文件,使用FormData进行Ajax请求
- Windows下通过bat脚本实现自动上传文件到ftp服务器
- linux 通过shell上传zip包到指定ftp
- linux 软连接方式实现上传文件存储目录的无缝迁移
- linux自动备份文件和数据库并上传到指定的远程FTP中
- C#通过FTP账号上传、修改、删除文件 FTPClient
- wget下载ftp文件,通过用户名和密码的方式