之所以寫這篇文章,是因為網上很多有關文章亂轉載,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,進行安裝
希望能協助有需要的同學