定時執行Linux shell指令碼實現SFTP定時上傳下載檔案__Linux

來源:互聯網
上載者:User

之所以寫這篇文章,是因為網上很多有關文章亂轉載,crontab 命令的文法都是錯的,都直接轉了,雖然很簡單,但也會浪費時間啊,尤其是對於第一次寫的同學來說。

轉入正題

一:定時任務(大部分文章出錯的就是這個部分)

1.執行命令:crontab -e

2.按 i 編輯檔案,添加命令如下:

10 12 * * * sh /home/uploadFile.sh

10 12 * * * 指每天12點10分開始執行該定時任務(具體時間用法可以參考其他資料)

sh /home/uploadFile.sh 指執行 home目錄下的指令碼uploadFile.sh

3.按ESC返回命令列模式,再按:wq儲存並退出

定時任務建立成功。

很多其他文章寫的很詳細,但都是最關鍵的第2部分命令出錯,寫那麼多又有什麼用,基本上寫的是 10 12 * * *  /home/uploadFile.sh,沒有寫 sh,這樣的話,指令碼根本不會執行啊。

所以完整的文法分兩部分,前半部分是時間定義,後半部分是命令,平時怎麼執行命令的,這個地方就怎麼寫

二:SFTP上傳下載的shell指令碼

完整的sftp上傳指令碼如下:

#!/bin/bash
#SFTP配置資訊
#IP
IP=1.1.1.1
#連接埠
PORT=22
#使用者名稱
USER=username
#密碼
PASSWORD=password
#待上傳檔案根目錄
CLIENTDIR=/client/upload
#SFTP目錄
SEVERDIR=/server/upload
#待上傳檔案名稱
FILE=filename

lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${SEVERDIR}/
lcd ${CLIENTDIR}
put ${FILE}
by
EOF

完整的sftp下載指令碼如下:

#!/bin/bash
#SFTP配置資訊
#IP
IP=1.1.1.1
#連接埠
PORT=22
#使用者名稱
USER=username
#密碼
PASSWORD=password
#待接收下載檔案根目錄
CLIENTDIR=/client/download
#伺服器待下載目錄
SEVERDIR=/server/download
#待下載檔案名稱
FILE=filename

lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${SEVERDIR}/
lcd ${CLIENTDIR}
get ${FILE}
by
EOF

另外:

如果提示lftp命令無效,執行命令:yum install lftp -y,進行安裝

希望能協助有需要的同學

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.