ftp脚本
Posted henglinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ftp脚本相关的知识,希望对你有一定的参考价值。
#!/bin/bash
/etc/init.d/iptables stop
setenforce 0
TIME=$(date +%Y%m%d-%H%M%S)
YUMINSTALL() {
YUMDIR=/etc/yum.repos.d
umount /dev/cdrom &>>/dev/null
mount /dev/cdrom /mnt &>>/dev/null
if [ $? -eq 0 ]
then
echo "光盘挂载成功!"
else
echo “光盘挂载失败请检查!”
exit
fi
mkdir $YUMDIR/bak &>>/dev/null
mv $YUMDIR/* $YUMDIR/bak &>>/dev/null
cat >> $YUMDIR/yum.repo << !
[base]
name=aaa
baseurl=file:///mnt
gpgcheck=0
!
yum clean all &>>/dev/null
yum makecache &>>/dev/null
if [ $? -eq 0 ]
then
echo "yum配置完毕"
else
echo "yum安装失败,请检查!"
exit 1
fi
}
FTPSERVER(){
read -p "ftp服务已经安装是否从新安装(yes / no)" CHONGXIN
case $CHONGXIN in
yes|YES)
clear
echo "正在重新安装ftp请稍后"
echo "#########################################"
rpm -e vsftpd --nodeps
yum -y install vsftpd &>/dev/null
if [ $? -eq 0 ]
then
echo "安装完毕!"
else
echo "安装失败!"
fi ;;
no|NO)
exit ;;
*)
echo “输入错误,请重新输入”
FTPSERVER ;;
esac
}
FTPCLIENT(){
read -p "ftp客户端已经安装是否从新安装(yes / no)" CHONGXINC
case $CHONGXINC in
yes|YES)
clear
echo "正在重新安装ftp客户端请稍后"
echo "#########################################"
rpm -e ftp --nodeps
yum -y install ftp &>/dev/null
if [ $? -eq 0 ]
then
echo "安装完毕!"
else
echo "安装失败!"
fi ;;
no|NO)
exit ;;
*)
echo “输入错误,请重新输入”
FTPCLIENT ;;
esac
}
NM(){
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/NM.vsftpd.conf.$TIME
chown -R ftp.ftp /var/ftp/pub
cat > /etc/vsftpd/vsftpd.conf << !
write_enable=YES
anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
!
}
TD(){
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/TD.vsftpd.conf.$TIME
cat >/etc/vsftpd/vsftpd.conf << !
local_enable=YES
local_umask=077
chroot_local_user=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
!
}
TDb(){
read -p "是否要创建新的用户来使用FTP(yes / no):" TDnew
case $TDnew in
yes|YES)
read -p "请创建登录FTP的特定用户:" yonghu
cat /etc/passwd |grep $yonghu &>/dev/null
if [ $? -eq 0 ]
then
echo "用户已经存在"
exit 1
else
useradd "$yonghu" && echo "用户创建成功!"
read -p "请输入登录FTP的用户密码:" mima
echo "$mima" |passwd --stdin $yonghu && echo "密码设定成功!"
echo "$yonghu" >> /etc/vsftpd/user_list
echo “-----------------------------------------------------------”
echo "请使用$yonghu登录ftp!"
fi ;;
no|NO)
exit 1 ;;
*)
echo "输入错误,请重新输入!"
TDb ;;
esac
}
XN(){
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/XN.vsftpd.conf.$TIME
rpm -q db4-utils &>/dev/null
if [ $? -ne 0 ]
then
echo "正在安装db4-utils,请稍等!"
yum -y install db4-utils
fi
touch /etc/vsftpd/user
useradd -s /sbin/nologin vu
read -p "请创建登录FTP的虚拟用户:" xuyonghu
sed ‘2~2d‘ /etc/vsftpd/user |grep $xuyonghu &>/dev/null
if [ $? -eq 0 ]
then
echo "这个虚拟用户已经存在!"
exit 1
else
read -p "请输入登录FTP的用户密码:" xumima
echo "$xuyonghu" >>/etc/vsftpd/user
echo "$xumima" >>/etc/vsftpd/user
cd $xunifile
db_load -T -t hash -f /etc/vsftpd/user /etc/vsftpd/user.db
cat > /etc/pam.d/vsftpd.vu <<!
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
!
fi
cat > /etc/vsftpd/vsftpd.conf << !
write_enable=YES
anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vu
pam_service_name=vsftpd.vu
local_enable=YES
local_umask=022
chroot_local_user=YES
virtual_use_local_privs=YES
!
}
FTP_CMD(){
rpm -q ftp &>/dev/null
if [ $? -ne 0 ]
then
echo "系统中未安装ftp客户端!"
exit 1
else
read -p "请输入要使用的操作(put / get):" caozuo
case $caozuo in
put)
read -p "请输入ftp服务端的ip地址:" IP
read -p "请输入登录ftp的用户:" xuniuser
read -p "请输入用户密码:" xunipass
read -p "请输入要上传文件的目录位置:" xunidir
read -p "请输入要上传的文件名称:" xunifile
ftp -n <<!
open $IP
user $xuniuser $xunipass
lcd $xunidir
put $xunifile
exit
!
echo "上传文件完成" ;;
get)
read -p "请输入ftp服务端的ip地址:" IP
read -p "请输入登录ftp的用户:" xuniuser
read -p "请输入用户密码:" xunipass
read -p "请输入要下载到系统的目录位置:" xunidir
read -p "请输入要下载的文件名称:" xunifile
ftp -n <<!
open $IP
user $xuniuser $xunipass
lcd $xunidir
get $xunifile
exit
!
echo "下载文件完成";;
*)
echo "输入指令有误,请重新输入!"
FTP_CMD ;;
esac
fi
}
clear
echo "----------------------------------------------------------------------------
| 欢迎使用vsftpd 脚本 |
----------------------------------------------------------------------------
|1.安装ftp服务 |
|2.安装ftp客户端 |
|3.选择ftp使用模式 |
|4.使用客户端(put|get) |
|5.退出当前程序 |
----------------------------------------------------------------------------"
read -p "请输入服务种类:" NUM
case $NUM in
1)
YUMINSTALL
rpm -q vsftpd &>/dev/null
if [ $? -eq 0 ]
then
FTPSERVER
else
echo "正在安装ftp服务端请稍后"
echo "#########################################"
yum -y install vsftpd &>/dev/null
echo "ftp服务端安装完毕!"
fi ;;
2)
YUMINSTALL
rpm -q ftp &>/dev/null
if [ $? -eq 0 ]
then
FTPCLIENT
else
echo "正在安装ftp客户端请稍后"
echo "#########################################"
yum -y install ftp &>/dev/null
echo "ftp客户端安装完毕!"
fi;;
3)
clear
rpm -q vsftpd &>/dev/null
if [ $? -eq 0 ]
then
echo "----------------------------------------------------------------------------
| 请选择ftp使用模式 |
----------------------------------------------------------------------------
|1.开启匿名用户 |
|2.开启特定用户 |
|3.开启虚拟用户 |
|4.退出当前程序 |
----------------------------------------------------------------------------"
read -p "请选择ftp使用模式:" moshi
case $moshi in
1)
NM
/etc/init.d/vsftpd restart
echo "注意:匿名用户为ftp,无删除权限" ;;
2)
TD
TDb
/etc/init.d/vsftpd restart ;;
3)
XN
/etc/init.d/vsftpd restart ;;
4)
exit 1 ;;
esac
else
echo "系统中不存在ftp服务,请安装!"
fi ;;
4)
FTP_CMD ;;
5)
echo "已经退出执行程序,欢迎下次使用!"
exit 1
esac
以上是关于ftp脚本的主要内容,如果未能解决你的问题,请参考以下文章
FTP 脚本 to Shell脚本&bat脚本&python脚本
shell编写脚本从FTP上下载文件,因为一般固定端口是21,所以网上很多脚本都没有指定端口,现在我要指定端口