【Linux系列】-Linux中⽤shell脚本从SFTP服务器下载⽂件
银企直连的电⼦回单接⼝中,部分银⾏使⽤sftp服务作为⽂件服务器,通常只保留N天的⽂件内容,企业未在规定的时间范围下载⽂件之后就不能下载了,那么有⼀个⾃动下载的脚本岂不美滋滋。
Linux安装SFTP服务
1、检查服务器是否安装SFTP服务
[root@localhost ~]# vsftpd -v  //⽅法⼀
[root@localhost ~]# rpm -q vsftpd  //⽅法⼆
[root@localhost ~]# where is vsftpd
2、安装SFTP服务
[root@localhost ~]# yum -y install vsftpd
3、关闭firewall和SELinux
[root@localhost ~]# setenforce 0  # FTP⽤户登录创建⽂件夹失败不重启系统
[root@localhost ~]# vi /etc/selinux/config    # 修改为SELINUX=disabled  FTP⽤户登录创建⽂件夹失败重启系统
[root@localhost ~]# systemctl stop firewalld.service  # 停⽌ firewall
[root@localhost ~]# systemctl disable firewalld.service  # 禁⽌ firewall 开机启动
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=ftp # 不关闭防⽕墙,需要防⽕墙添加FTP服务
[root@localhost ~]# firewall-cmd --reload
4、关闭匿名访问
shell vim命令[root@localhost ~]# vim /etc/f #修改配置⽂档,关闭匿名访问:anonymous_enable=NO
/etc/vsftpd/ftpusers:禁⽌使⽤vsftpd的⽤户列表⽂件
/etc/vsftpd/user_list:禁⽌或允许使⽤vsftpd的⽤户列表⽂件。这个⽂件中指定的⽤户缺省情况(即在/etc/f中设置
userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的⽤户访问FTP服务器
sftp 免密登陆设置
1、⽣成公钥⽂件
[ftpuser@localhost ~]$ ssh-keygen -b 1024 -t rsa ===>ftp登陆⽤户环境,⽣成安全证书(执⾏命令直接回车,选择默认空密码证书即可)
2、将公钥⽂件上传⾄SFTP服务器并保存在⽤户的authorized_keys⽂件中
[ftpuser@localhost ~]$ scp /home/ftpuser/.ssh/id_rsa.pub SFTP服务器IP:路径/id_rsa.pub  # 将客户端的公钥上传⾄SFTP服务器
[ftpuser@localhost ~]$ cat id_rsa.pub >> /home/ftpuser/.ssh/authorized_keys # 将客户端公钥保存在服务器SFTP⽤户的authorized_keys⽂件中
3、验证
[docker@localhost ~]$ sftp -oIdentityFile=/home/docker/ftp_rsa -oPort=22 ftpuser@192.168.137.130 # 连接时携带私钥即可
SFTP⾃动下载⽂件脚本
#!/bin/bash
data=$(date +%Y%m%d -d '-1 day')
cd /home/ICBC_HD
sftp -oIdentityFile=/home/docker/ftp_rsa -oPort=22 ftpuser@192.168.137.130 <<EOF // <<EOF 不可换⾏
cd data
mget *$data*
exit
EOF
-oIdentityFile:私钥⽂件
-oPort:端⼝
sftp -oIdentityFile= -oPort= ⽤户@ip

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。