Linux crontab定時執行scp操作

2021-10-01 05:24:50 字數 1389 閱讀 1232

假設本地為客戶端a([email protected]),遠端服務端為b([email protected]),定時從b複製資料夾內容到a:

設定步驟:

1. 設定免密登陸

(1)在客戶端(a )生成一對公鑰和秘鑰,使用ssh-keygen -t rsa生成,一路回車即可;

sudo su

ssh-keygen -t rsa

(2)進入秘鑰資料夾檢視檔案: 其中id_rsa.pub是公鑰,id_rsa是私鑰;

//進入資料夾

cd /root/.ssh

(3) 把id_rsa.pub上傳到到服務端(b);

scp /root/.ssh/id_rsa.pub[email protected]:/home/tom/

(4)在服務端(b)上生成公鑰和金鑰(不需要進入root),使用ssh-keygen -t rsa生成,一路回車即可;

(5)在服務端(b)上建立authorized_keys,並把(3)上傳a的id_rsa.pub的內容拷貝到服務端(b )的 authorized_keys:

touch ~/.ssh/authorized_keys

cat /home/tom/id_rsa.pub >>~/.ssh/authorized_keys

2. 在客戶端(a )建立執行scp操作的sh指令碼:testscp.sh

#!/bin/sh

/usr/bin/scp -r [email protected]:/home/tom/data/ /home/tony/datasets/

exit 0

3. 在客戶端(a )設定定時任務

sudo gedit /etc/crontab

新增:每天02:50執行該指令碼

50 02    * * *    root    /home/tony/testscp.sh >>  /home/tony/scp.log 2>&1

4. 在客戶端(a )重啟cron來應用這個計畫任務

sudo service cron restart

備註:由於我的定時任務是a上root執行的,所以金鑰需要在root下生成,待測試普通使用者執行定時任務的設定; 

linux crontab定時執行

本文章基於linux伺服器,使用linux的crontab命令實現任務的定時執行。通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script指令碼。時間間隔的單位可以是分鐘 小時 日 月 周及以上的任意組合。這個命令非常適合週期性的日誌分析或資料備份等工作。需要...

linux crontab定時執行任務

關於crontab crontab命令常見於unix和類unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於 crontab 檔案中,以供之後讀取和執行。該詞 於希臘語 chronos 原意是時間。通常,crontab儲存的指令被守護程序啟用,crond常常...

Linux crontab定時執行任務

crond是linux下用來週期性的執行某種任務或等待處理某些事件的乙個守護程序,與windows下的計畫任務類似,當安裝完成作業系統後,缺省會安裝此服務工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。2 最小時間單位為 分...