簡體   English   中英

從遠程服務器到本地服務器的Sftp文件

[英]Sftp files from Remote server to local server

抱歉,這是一個非常簡單的問題。 但是我是Java開發人員,不了解Shell腳本。 我用谷歌搜索,但是找不到我想要的東西。

我的要求

  1. 使用Sftp [基於pub / pri密鑰的身份驗證]連接到遠程服務器。 指向私鑰文件的變量
  2. 將具有特定擴展名[.log]的文件傳輸到本地服務器文件夾。 設置遠程服務器路徑和本地文件夾的變量
  3. 重命名遠程服務器中傳輸的文件
  4. 將所有傳輸的文件記錄在.txt文件中

有人可以給我這個shell腳本嗎?

到目前為止,我尚未提出建議。 還有一些問題留在我的身邊;)

export PRIVKEY=${private_key_path}
export RMTHOST=user@remotehost
export RMTDIR=/logs/*.log
export LOCDIR=/downloaded/logs/
export LOG=sucess.txt

scp -i $PRIVKEY $RMTHOST:$RMTDIR $LOCDIR
for i in 'ls -1 $LOCDIR/*.log'
do
   echo $i >> $LOG
done

ssh $RMTHOST -c "for i in `ls -1 $RMTDIR; do mv /logs/$i /logs/$i.transferred; done"

那這種方法呢?

  1. 使用Sftp [基於pub / pri密鑰的身份驗證]連接到遠程服務器。 指向私鑰文件的變量
  2. 將具有特定擴展名[.log]的文件傳輸到本地服務器文件夾。 設置遠程服務器路徑和本地文件夾的變量
scp your_user@server:/dir/of/file/*.log /your/local/dir
  1. 將所有傳輸的文件記錄在.txt文件中
for file in /your/local/dir/*.log
do
   echo "$file" >> $your_txt
done
  1. 重命名遠程服務器中傳輸的文件
ssh your_user@server -c "for file in /dir/of/file/*.log; do mv /dir/of/file/"$file" /dir/of/file/new_name_based_on"$file"; done"

使用scp(安全復制)命令傳輸文件。 您可能還需要添加-C開關,該開關可壓縮文件。 這樣可以加快速度。 即將文件1從服務器1復制到服務器2,

在server1上:

#!/bin/sh
scp -C /home/user/file1 root@server2.com:/home/user

編輯:

#!/bin/sh
scp -i {path/to/pub/pri/key/file} /home/user/file1 root@server2.com:/home/user

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM