機器A發文件的虛擬機 機器B收文件的虛擬機 機器A: 確認linux安裝了ftp包,能啓用ftp命令 定時器使用的是crontab 定時器設置步驟: 1.進入root用戶 2.service crond stauts 查看 crond運行狀態,若是爲運行則用命令service crond start啓動 3.crontab –e 設置定時計劃 寫入 0 12 * * * sh /home/oracle/instance/uploadfile.sh (前面總共五列,分別表示分、時、日、月、年) 表示天天12:00執行相對用戶目錄下的sh腳本 4.service crond restart 如今有以上幾個步驟的腳本,執行settask.sh腳本的步驟以下: 1.進入root用戶 2. 修改腳本里面的配置 echo "*/1 * * * * sh /home/oracle/instance/uploadfile.sh">> /var/spool/cron/oracle 該條語句表示每分鐘執行/home/oracle/instance/uploadfile.sh該路徑下的sh腳本在oracle帳戶下的定時器 "*/1 * * * * sh /home/oracle/instance/uploadfile.sh"該語句前面的五個*表示執行後面語句的時間,若是須要在天天的12:00,能夠寫成0 12 * * *,後面的sh表示執行哪一個腳本 具體根據uploadfile.sh的存放路勁來修改 /var/spool/cron/oracle 表示把前面定時執行語句寫進哪一個用戶下的crontab定時器中,能夠根據具體的狀況進行修改,/var/spool/cron/oracle該語句表示oracle用戶的定時器。 echo "*/1 * * * * sh /home/oracle/instance/uploadfile.sh">> /var/spool/cron/oracle整個語句的意思是 把「每分鐘執行/home/oracle/instance/uploadfile.sh下的腳本」的定時命令寫入oralce用戶下,oracle用戶就會每分鐘去執行該目錄下的腳本 3.sh settask.sh執行腳本 機器B: 確認linux安裝了vsftpd包,能啓用vsftpd服務 uploadfile.sh詳解 向服務器傳輸前一天產生的db文件 #!/bin/bash # caculate yesterday time yesterday=$(date +%Y%m%d -d "-1 days") # match file name filename=${yesterday}* #ftp ftp -n<<! open ip_address //目標ip地址 user name password //用戶名密碼 好比 user oracle 1234 binary //傳輸模式設爲二進制 hash //散列的文件 cd target_path //上傳到服務器文件夾地址 lcd local_path //本地文件存儲地址 prompt //表示多文件上傳 mput $filename close bye ! # if remove source file #rm $filename #echo $filename 通常須要修改 目標地址,輸入用戶名密碼,設置上傳地址和本地文件地址就行 若是須要上傳以後刪除該文件,能夠把倒數第二行的註釋去掉 若有疑問能夠qq問我