溫馨提示×

centos sftp腳本自動化操作指南

小樊
44
2025-09-13 20:15:17
欄目: 智能運維

以下是在CentOS上實現SFTP腳本自動化操作的指南:

一、準備工作

確保系統已安裝openssh-client,若未安裝可使用命令sudo yum install openssh-client -y進行安裝。

二、使用SSH密鑰認證(推薦)

  1. 生成密鑰對:在客戶端執行ssh-keygen -t rsa,按提示生成私鑰和公鑰。
  2. 復制公鑰到服務器:使用ssh-copy-id username@server_ip將公鑰復制到遠程服務器的~/.ssh/authorized_keys文件中。
  3. 編寫腳本:創建如sftp_transfer.sh的腳本,內容如下:
#!/bin/bash
HOST='your_host'
PORT='22'
USERNAME='your_username'
PRIVATE_KEY='~/.ssh/id_rsa'
REMOTE_DIR='/remote/directory'
LOCAL_DIR='/local/directory'
sftp -oPort=$PORT -i $PRIVATE_KEY $USERNAME@$HOST <<EOF
cd $REMOTE_DIR
lcd $LOCAL_DIR
mput *
bye
EOF
  1. 賦予執行權限并運行:執行chmod +x sftp_transfer.sh,然后運行./sftp_transfer.sh。

三、使用expect工具(需安裝)

  1. 安裝expect:執行sudo yum install expect -y。
  2. 編寫腳本:創建腳本并添加如下內容:
#!/usr/bin/expect -f
set timeout 20
set host "your_host"
set username "your_username"
set password "your_password"
set local_dir "/local/directory"
set remote_dir "/remote/directory"
spawn sftp $username@$host
expect "password:"
send "$password\r"
expect "sftp>"
send "cd $remote_dir\r"
expect "sftp>"
send "lcd $local_dir\r"
expect "sftp>"
send "mput *\r"
expect "sftp>"
send "bye\r"
expect eof
  1. 賦予執行權限并運行:執行chmod +x script_name.sh,然后運行./script_name.sh。

四、使用lftp工具

  1. 安裝lftp:執行sudo yum install lftp -y。
  2. 編寫腳本:創建腳本并添加如下內容:
#!/bin/bash
HOST='your_host'
PORT='22'
USERNAME='your_username'
PASSWORD='your_password'
REMOTE_DIR='/remote/directory'
LOCAL_DIR='/local/directory'
lftp -e "open sftp://$USERNAME:$PASSWORD@$HOST:$PORT; cd $REMOTE_DIR; lcd $LOCAL_DIR; mput *; quit;"
  1. 賦予執行權限并運行:執行chmod +x script_name.sh,然后運行./script_name.sh。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女