shell指令碼連線ftp推送資料夾_關於Shell指令碼
阿新 • • 發佈:2021-01-01
技術標籤:shell指令碼連線ftp推送資料夾
今天時間比較緊迫,暫時先不分享多執行緒。以下給大家分享一下我之前寫過的一個shell指令碼。當時是java+shell+linux,去完成使用者輸入linux伺服器地址、賬號、密碼,根據已得資訊在對應的伺服器上建立一個FTP伺服器。至於這個FTP 伺服器,就是讓使用者他們可以擁有一個類似私有云的檔案儲存功能。以下:#!/bin/bash# 0 檔名 1方法 2埠 3賬號 4密碼#宣告變數StackStack=$1;#如果空 則安裝 如果不是 則賦值if [ "${Stack}" == "" ]; then Stack="install";else Stack=$1;fi#安裝方法#1埠 2賬號 3密碼install_vsftp(){ #建立FTP資料夾 mkdir /FTPSource mkdir /FTPSource/company port=$1; #檢測ftp服務 rpm -q vsftpd #如果有 if [ "$?" -eq "0" ]; then echo "You have to install VSFTPD!" else #判斷是否監控埠 netstat -ntulp |grep -w $1 #如果執行正常 if [ "$?" -eq "0" ]; then echo "Other FTP is already installed" else #預設路徑/FTPSource directorys="/FTPSource"; fi #安裝ftp yum -y install vsftpd #安裝正常設定路徑 if [ "$?" -eq "0" ]; then if [ -d ${directorys} ]; then #許可權開啟 chmod -R 777 ${directorys} fi #新增使用者 安裝路徑 使用者名稱 使用者密碼 useradd -d ${directorys} -g ftp -s /sbin/nologin $2 echo "$3" | passwd --stdin $2 > /dev/null #配置config檔案 #不能匿名訪問 sed -i 's/^anonymous_enable=YES/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf #是否將所有使用者限制在主目錄 sed -i 's/^#chroot_local_user=YES/chroot_local_user=YES/g' #是否啟動限制使用者的名單 sed -i 's/^#chroot_list_enable=YES/chroot_list_enable=YES/g' /etc/vsftpd/vsftpd.conf #設定埠 echo "listen_port=$1" >> /etc/vsftpd/vsftpd.conf #更改FTP根目錄 echo "local_root=${directorys}" >> /etc/vsftpd/vsftpd.conf #系統使用者 echo "chroot_local_user=YES" >> /etc/vsftpd/vsftpd.conf #匿名使用者 ---不開啟 #echo "anon_root=${directorys}" >> /etc/vsftpd/vsftpd.conf #設定services埠 -------必須一致 sed -i "/^ftp/s/21\/tcp/${port}\/tcp/" /etc/services sed -i "/^ftp/s/21\/udp/${port}\/udp/" /etc/services #設定使用者 開通的使用者都在這 echo "userdel $2" >> /etc/vsftpd/user_list.sh echo "" > /etc/vsftpd/chroot_list chkconfig vsftpd on #重啟服務 這是老版的命令 service vsftpd restart echo "###################################" echo "FTP user:$2" echo "Ftp password:$3" echo "The FTP directory:${directorys}" echo "-----------------------------------" else echo "VSFTPD installation failed!" fi fi}# 1賬號 2密碼add_ftp(){ #路徑 directorys="/FTPSource" #使用者名稱 密碼 if [ -d ${directorys} ]; then chmod -R 777 ${directorys} fi useradd -d ${directorys} -g ftp -s /sbin/nologin $1 echo "$2" | passwd --stdin $1 > /dev/null echo "userdel $1" >> /etc/vsftpd/user_list.sh if [ -d ${directorys} ]; then chmod -R 777 ${directorys} fi echo "###################################" echo "FTP user:$1" echo "Ftp password:$2" echo "The FTP directory:$directorys" echo "-----------------------------------"}#解除安裝ftpuninstall_ftp(){yum -y remove vsftpd*sh /etc/vsftpd/user_list.shecho "" > /etc/vsftpd/user_list.sh}#獲取變數的值 如果install 執行安裝 add執行新增服務 uninstall 解除安裝服務case "${Stack}" in install) install_vsftp $2 $3 $4 ;; add) add_ftp $3 $4 ;; uninstall) uninstall_ftp ;; *) echo "Usage: $0 {install|add|uninstall}" ;;esac