機器A定時發文件給機器B-FTP實現

機器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問我
相關文章
相關標籤/搜索