❶ ftp腳本抓取數據 shell腳本怎麼寫
假設需要每天11:00自動使用ftp從伺服器server下的一個目錄下載文件到本地。
重點:ftp命令如何獲取用戶名,密碼。
vi ftps //編寫腳本ftps
#!/usr/bin/sh
ftp -i -in <<!
open 192.168.1.171 //連接到伺服器(假設為192.168.1.171)
user $ftpuser $password //用戶名和密碼
bin //以二進制傳送
cd / //到ftpuser的根目錄(
passive //如果出現no route to host提示,使用passive模式
mget $1 //獲取命令後加的參數(文件或者文件夾)
bye //退出
!
保存退出
chmod +x ftps
crontab -e
00 11 * * * /$path/ftps
保存退出
這樣在每天11點的時候就可以自動ftp下載數據了。
❷ 求每日定時在伺服器的FTP上取數據文件的源碼(JAVA)
這個是可以向伺服器端發送文字的程序,就是在客戶端發送一句hello在伺服器也可以接受到hello,這個程序可以修改一下就可以了。具體修改方法是增加一個定時器,然後把字元流改成位元組流,現在有點忙,你先研究啊,近兩天幫你寫寫看。
伺服器端:
import java.net.*;
import java.io.*;
public class DateServer {
public static void main(String[] args) {
ServerSocket server=null;
try{
server=new ServerSocket(6666);
System.out.println(
"Server start on port 6666...");
while(true){
Socket socket=server.accept();
new SocketHandler(socket).start();
/*
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
);
out.println(new java.util.Date().toLocaleString());
out.close();
*/
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(server!=null) {
try{
server.close();
}catch(Exception ex){}
}
}
}
}
class SocketHandler extends Thread {
private Socket socket;
public SocketHandler(Socket socket) {
this.socket=socket;
}
public void run() {
try{
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
);
out.println(
new java.util.Date().
toLocaleString());
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
客戶端:
package com.briup;
import java.io.*;
import java.net.*;
public class FtpClient {
public static void main(String[] args) {
if(args.length==0) {
System.out.println("Usage:java FtpClient file_path");
System.exit(0);
}
File file=new File(args[0]);
if(!file.exists()||!file.canRead()) {
System.out.println(args[0]+" doesn't exist or can not read.");
System.exit(0);
}
Socket socket=null;
try{
socket=new Socket(args[1],Integer.parseInt(args[2]));
BufferedInputStream in=new BufferedInputStream(
new FileInputStream(file)
);
BufferedOutputStream out=new BufferedOutputStream(
socket.getOutputStream()
);
byte[] buffer=new byte[1024*8];
int i=-1;
while((i=in.read(buffer))!=-1) {
out.write(buffer,0,i);
}
System.out.println(socket.getInetAddress().getHostAddress()+" send file over.");
in.close();
out.close();
}catch(Exception e){
e.printStackTrace();
}finally{
if(socket!=null) {
try{
socket.close();
}catch(Exception ex){}
}
}
}
}
❸ Linux定時ftp腳本
計算機自己 tar 壓縮,之後 ftp 上傳這個文件到備份伺服器上。
其實這個時候,ftp 確實沒用,因為雙 Linux/Unix 機器有很多辦法備份。
最簡單的辦法就是備份機開網路存儲。伺服器直接掛載備份伺服器到網路存儲之後復制備份數據過去。
❹ FTP伺服器與客戶端資料 數據定期更新腳本怎樣寫
客戶端:
1 *.ftp 2 *.bat 3 WINDOWS計劃任務
第一步: 腳本語言寫在tongbu.ftp 中
open 192.168.0.99
administrator
d:
Cd jieshouwenjian
Bin
Prompt
Mget *.*
Bye
****** Mget 是下載 Mput 是上傳 ******
第二步:寫批處理文件 來執行你的腳本 tongbu.bat
ftp -s:d:\tongbu.ftp
第三步:打開WINDOWS計劃任務 設定定時執行
控制面板——計劃任務
伺服器端:
建立好 用戶名:administrator 密碼:無 的用戶
❺ shell腳本怎樣用ftp抓取新增文件。文件不定時更新,先增量判斷,再抓取
可以使用inotifywait。可以網路一下安裝方法
記得之前用過類似:inotifywait -me close_write aaa/ > bbb.txt(大致是這樣)
通過監控aaa目錄下文件關閉動作來判斷FTP傳送寫入文件結束,並將其文件名寫入bbb.txt
❻ suse 定時ftp任務 腳本怎麼寫
重點是這一句:ftp-v-i-n218.200.245.84>/home/mediation/log/ftpcdr.log從這一句看出所有的FTP命令都是從「/home/mediation/config.billing」此文件中讀取的,所以你要的FTP命令都在這個文件中。
❼ 求一shell腳本:定時備份日誌文件然後用FTP上傳到指定IP的機器上。
寫個你參考吧 (備份日誌文件就不用說了吧 你的主要難點就是在FTP上傳這里)
定時的話就放在crotable裡面去做。
USERNAME=root
PASSWORD=123456
PATH=/root/bak/
rundir=....(你的日誌路徑)
SERVERIP=192.168.1.1
getfilenametofile(){
(
echo "user $USERNAME $PASSWORD"
echo "ascii"
echo "hash"
echo "cd $PATH"
echo "ls *.bak filename"
echo "y"
echo "close"
echo "bye"
)| ftp -n -i $SERVERIP 1> $rundir/getfileok.log 2> $rundir/getfileerr.log
}
❽ FTP自動備份腳本
換空間,數據的備份與恢復具體步驟操作!
一 備份數據
1,利用PW後台的數據備份功能進行備份.注意的是在備份數據的時候,為了數據的完整性,建議最好先關閉論壇,後台更新所有緩存和索引.
2,利用phpmyadmin,進行備份,具體如何備份,這里就不介紹.不清楚的可以查閱相關文檔,很簡單的.這里備份的文件是一個獨立sql文件.
以上方法一般適用與中小型論壇的備份,數據量比較小的時候還是很實用的,一般多為虛擬主機用戶使用.大型論壇的備份一般是 3,4兩種操作..主要是比較簡單操作,一些我個人認為比較復雜且不是很實用的方法就不介紹了不如通過Mysqlhot,使用binlog機制,增加mysql的事物日誌記錄等,這里就不介紹了.以下下操作一般有伺服器許可權的朋友才可以的.
3,直接復制或者打包資料庫文件,復制文件夾,大家應該都明白,我們來講打包,linux下用tar命令實現簡單有效,速度快.Win 下,直接用winrar或者winzip 搞定.注意需要暫停mysql服務.
4,Mysqlmp,是mysql自帶的腳本,假如資料庫名為abc,用戶名為:abcuser,密碼為123,,那應該使用
命令:
mysqlmp -uabcuser -p123 adc pwabc_bak.sql
,pwabc_bak.sql 你可以任意的命名.
二 數據還原
1,針對第一種備份方法,也是最普遍使用的.在恢復論壇數據的時候,要關閉php.ini文件中的safe mode,恢復完數據後,再打開SAFE MODE就可以了。(自己伺服器得才需要此設置,普通虛擬空間用戶不用此設置)
用FTP軟體下載老論壇所有文件
將所有文件上傳至新空間
打開網頁 你的論壇地址/admin.php 用你的論壇創始人帳號登陸
數據恢復(隨便點一個文件,程序會自動將剩餘文件導入的)
以上方法可保留所有數據及插件和模板。
對於不需要模板的或者不需要原來的插件的
老論壇備份數據,用FTP拉到本地。(具體在data目錄下)
上傳程序包里的文件到新空間,全新安裝
用FTP軟體將備份的數據上傳到新空間的data目錄下
用論壇創始人帳號進入後台,數據恢復
如果後台資料庫忘記了,可以直接修改sql_config.php里的資料庫帳號和創始人帳號密碼!這里輸入的創始人密碼不能直接是明文.需要是MD5加密過後的.
這里就給大家一個簡單的 MD5密文 [] 明文 [123456]之後就可以通過/admin.php 剛才修改的帳戶密碼登陸論壇了..
2,對於phpmysql備份的數據,在2M以下可以直接導入資料庫中(至於怎麼導,看相關文檔,很簡單.)數據量很大的情況只能到伺服器上,伺服器上 mysql 命令導入(具體導入將在"4"中介紹)虛擬主機用戶,那麼就得聯系你的空間商,讓他們協助完成數據的恢復.
3,對於打包資料庫文件的,可以直接解壓 把資料庫文件 放到你資料庫名的目錄下. 在linux下注意資料庫文件的許可權.一般都是mysql:mysql. Win 下關系不是很大,除非你做了特殊的許可權設置.
4,對於mysqlmp 導出數據, 按照備份數據中的舉例用戶來演示,
則命令為:
mysql -uabcuser -p123 abc abc_bak.sql
注意:
無任何錯誤一般來說就是正常完成。通常在使用 phpmyadmin 導入的sql腳本中有create database語句,會導致導入數據出錯,因為database 已經存在,把這段語句刪除之,再次檢查客戶的建表語句前是否有drop表的語句,如果沒有,而原資料庫存在同名表格,也會出錯,這時需要清空原資料庫.