A. 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下載數據了。
B. ftp使用perl腳本
#!/usr/bin/perl -w
use Net::FTP;
use POSIX qw(strftime); #這個是我當時用來抓時間的可以省略
my $remotefile;
my $localfile;
my $dir = 'E:/CDR/trunk/'; #本地存放路徑
my $host;
my $password;
my $ftp;
#1. get begin
$host='192.168.1.105'; #被FTP的遠程IP
$password='hahahaha'; #ftp的密碼
$ftp=Net::FTP->new($host) or die "cannot connect to ftp server $host!\n";
$ftp->login("root",$password);
$ftp->cwd("/AP/CDR"); #遠程抓取的路徑
if ( -d "$dir/$host" ) { #這個條件句是用來判斷本地目錄192.168.1.105是否存在,不存在就創建
}
else {
system "mkdir -p $host";
}
print "the list of /ap/cdr from $host!!\n"; #列出遠程目錄的所以非目錄文件,並抓取符合條件的文件
&list("/");
$ftp->quit;
#1. get end
sub list() #list類,判斷文件類型的核心
{
my $current = $_[0];
my @subdirs;
$ftp->cwd($current);
my @allfiles = $ftp->ls();
foreach (@allfiles){
if(&find_type($_) eq "d"){ #如果是目錄則列印並忽略掉
print "this floder!!\n";
}
else{
my $tmp = "$_";
print $tmp."\n";
if($tmp=~/adf/){ #判斷包含adf則抓取,當然可以擴展正則方法
$remotefile=$tmp;
$localfile = "$dir/$host/".$remotefile;
$ftp->binary();
$ftp->get($remotefile,$localfile)
or die "Could not get remotefile:$remotefile\n";
print "download $remotefile complete from $host!!\n";
}
}
}
}
sub find_type{
my $path = shift;
my $pwd = $ftp->pwd;
my $type = '-';
if ($ftp->cwd($path)) {
$ftp->cwd ($pwd);
$type = 'd';
}
return $type;
}
老大 我自己執行是可以的, 把分給我吧
C. 自動上傳FTP腳本
你用ftp 工具 上傳不行嗎 用這個工具
8uftp同時支持直接上傳壓縮包,可在空間上直接解壓。也可以在空間上壓縮後直接下載壓縮包。
.增加遠程ftp目錄的復制URL功能
增加遠程ftp目錄和本地目錄對比的工具
D. Linux FTP腳本
試一下在put前,設置傳輸模式為二進制,即用 binary 命令。
另外,是不是你的winrar不支持.gz格式的,結果導致它報錯?你可以試一下用其他格式壓縮,或者乾脆就不壓縮,直接傳一個文本或圖片文件過去看看有沒有傳輸的問題。
E. 阿里的雲伺服器的ubuntu系統怎麼一鍵安裝環境
安裝須知
1、此安裝包可在阿里雲所有linux系統上部署安裝,此安裝包包含的軟體及版本為:
nginx:1.0.15、1.2.5、1.4.4
apache:2.2.22、2.4.2
Mysql:5.1.73、5.5.35、5.6.15
php:5.3.18、5.4.23、5.5.7
php擴展:memcache、Zend Engine/ OPcache
ftp:(yum/apt-get安裝)
phpwind:8.7 GBK
phpmyadmin:4.1.8
2、請使用最新的一鍵安裝包腳本安裝,以前老版本都存在bug,會導致安裝異常以及安裝的環境混亂。
3、執行一鍵安裝包(./install.sh),會自動清理之前一鍵安裝包安裝過的環境。
如果您已經安裝過一鍵安裝包,再次執行安裝,如若有重要數據,請自行備份/alidata目錄。
4、一鍵安裝包會將軟體安裝在/alidata目錄下。
如果您的系統不存在數據盤,則一鍵安裝包會將軟體安裝到系統/alidata目錄下。
如果您的系統存在數據盤,且還沒有格式化掛載數據盤。則一鍵安裝包會自動幫您格式化第一塊數據盤,並掛載在/alidata目錄下。
如果您的系統存在數據盤,且已格式化並掛載了第一塊數據盤。一鍵安裝包會將第一塊數據盤再次掛載到/alidata目錄下,並不影響您之前的掛載目錄的使用。比如下圖所示,安裝前,已經掛載了mnt目錄。安裝後,一鍵安裝包再次掛載/alidata目錄。
如果您的系統存在數據盤,且已格式化數據盤,但沒有掛載數據盤。一鍵安裝包會將第一塊數據盤掛載到/alidata目錄下。
5、怎麼樣卸載一鍵安裝包?
可以執行以下命令完成卸載:
chmod 777 -R sh-1.3.0/
cd sh-1.3.0/
./uninstall.sh
好了,下面來進行我們詳細的安裝步驟,come on ~~!
首先准備好連接linux伺服器的工具,推薦用xshell和xftp。
xshell 是一個強大的安全終端模擬軟體,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 協議。
下載地址:http://www.newhua.com/soft/36383.htm
Xftp 是一個基於 MS windows 平台的功能強大的SFTP、FTP 文件傳輸軟體。
下載地址:http://www.newhua.com/soft/143.htm
根據上面提供的下載地址,首先安裝xshell(基本上是點擊Next直至安裝 完成):
點擊Next-->此時選擇「free for Home/School」(免費版)。
再點擊Next-->Next-->Next-->install即可安裝(還可以選擇xshell安裝後的語言環境,熟悉英文的朋友,可以選擇English選項)。
點擊finish完成xshell的安裝。
然後我們可以看到以下界面。
接下來安裝xftp(用於上傳文件到linux伺服器的小工具),安裝xftp也是非常的簡單,基本上也點擊Next直至安裝完成。
點擊Next -->此時選擇「free for Home/School」,(免費版)。
錄點擊Next -->Next -->Next-->install (還可以選擇xshell安裝後的語言環境,熟悉英文的朋友,可以選擇English選項)。
點擊finish完成安裝。
然後我們可以看到以下界。
然後我們打開xshell, 設置雲伺服器登錄信息。
設置伺服器帳號密碼。
設置字元集編碼(如果不設置字元集編碼,則中文字元將會在xshell中顯示為亂碼)。
設置好了就點擊ok保存。
一切准備就緒,讓我們連接看看雲linux伺服器的廬山真面目吧!
黑不隆冬的,啥都沒有,這就是linux的shell啦。shell(殼)到底是什麼東東呢?
* Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。
linux作為伺服器專用操作系統,主要就是默默的待在機房提供各項網路服務的,為了節省系統資源,像windows那樣華麗麗的用戶桌面就默認不載入了。當然現在越來越多的用戶使用linux作為日常家庭辦公用操作系統,所以就有了像gnome、kde這樣超華麗的桌面。不過作為伺服器使用還是推薦用命令行界面吧,畢竟省一點資源,網站打開可能會更快一點嘛!
打下面的命令去主目錄(/home)看下
輸入命令:cd
用xftp上傳環境安裝文件。
回到shell界面,用ll命令看下情況
輸入命令:ll
是不是多了一個sh-1.3.0目錄,1.3.0是我們的一鍵安裝包的版本號。 請下載最新的版本安裝,版本更新介紹,我們可以在change.log中查看。也希望大家多多反饋對於一鍵安裝包的意見。(另外,熟悉linux的朋友,直接可以用wget命令下載我們的安裝包,也不用安裝Xftp,這樣更加便捷。)
接下來按照說明,分步驟敲入安裝命令(以下為redhat系統下安裝示例)。
輸入命令:chmod –R 777 sh-1.3.0
cd sh-1.3.0
./install.sh
出現了一個選擇提示,進入web伺服器的選擇界面。
這里您可以根據需要選擇apache或者nginx伺服器,這里是2個伺服器的介紹:
apache:http://ke..com/view/28283.htm
nginx:http://ke..com/view/926025.htm
引用:
在高並發連接的情況下,Nginx是Apache伺服器不錯的替代品。Nginx同時也可以作為7層負載均衡伺服器來使用。根據我的測試結果,Nginx
0.8.46 + PHP 5.2.14 (FastCGI) 可以承受3萬以上的並發連接數,相當於同等環境下Apache的10倍。
這里我們選擇nginx,輸入1,回車(如果什麼都不輸入,直接回車,或者輸入錯誤的字元,則默認選擇nginx)
然後我們再選擇要安裝的nginx的版本(如果web伺服器選擇的是apache,這里提示信息則是要安裝apache的版本),總共有1.0.15/1.2.5/1.4.4三個版本可以提供我們選擇,這里我們選擇1.2.5版本,則輸入2,回車(如果什麼都不輸入,直接回車,或者輸入錯誤的字元,則默認選擇1.0.15版本)
然後我們再選擇要安裝的php的版本,總共有5.3.18/5.4.23/5.5.7三個版本可以提供我們選擇,這里我們選擇5.5.7版本,則輸入3,回車(如果什麼都不輸入,直接回車,或者輸入錯誤的字元,則默認選擇5.3.18版本)
然後我們再選擇要安裝的mysql的版本,總共有5.1.73/5.5.35/5.6.15三個版本可以提供我們選擇,這里我們選擇5.1.73版本,則輸入1,回車(如果什麼都不輸入,直接回車,或者輸入錯誤的字元,則默認選擇5.1.73版本)
然後可以看到我們剛才選擇的版本如下,我們輸入y或者Y進行安裝。
到這里,我們就正式進入環境安裝環節了。你可以泡杯茶休息下。一般這個過程會持續半個小時的樣子。
注意:
1、請在網路通暢的情況下進行安裝,不要強行終止安裝過程(強行關閉安裝窗口或者ctrl+c強行終止安裝進程),則會導致安裝失敗,以及出現不可預知的安裝異常!
2、安裝前,最好能跟系統盤打上快照,如果異常,方便回滾系統。
為了防止斷掉和伺服器的連接,可以新開一個shell窗口,將滑鼠挪到窗口標簽欄,右擊,如下圖所示:
可以看到,新開了一個窗口。
輸入top命令
可以看到一直在跳動的系統資源統計。
好了。做完了這一些就讓我們靜靜的等待吧!程序正在自動編譯安裝服務!
到這個界面說明安裝已經結束了,我們可以輸入以下命令再次驗證是不是已經安裝成功:
輸入命令 :netstat -tunpl
我們可以看到正在運行狀態的服務及埠:9000埠是php進程服務,3306埠是mysql服務,80埠是nginx服務,21埠是ftp服務。
如果看到以上信息,則說明安裝沒有異常。這里有一點需要注意的是,如果您選擇安裝的是apache,則沒有上面的9000埠。為什麼選擇安裝的是apache,就沒有9000埠的php進程服務呢?這是因為nginx+php集成方式與apache+php集成方式不同,感興趣的朋友可以自己入研究一下,這里就不再介紹。
大家有疑問了。那我怎麼登錄ftp和mysql呢?
在命令行里輸入: cat account.log
看到了沒
ftp的用戶名是:www
mysql的用戶名是:root
密碼就在屏幕上了!
另外我們也可以cat /alidata/website-info.log中查看到剛才安裝軟體的版本信息。
好了。所有配置都已經完成了。是不是很簡單!
接下來我們可以訪問一下一鍵安裝包默認安裝的phpwind論壇以及phpmyadmin。
直接在瀏覽器中輸入您的域名或者ip,如果是第一次訪問phpwind,則會自動跳轉到安裝頁面。
如果訪問的時候卡主,不出來頁面,則檢查一下防火牆,並自行設置或者關閉防火牆。
點擊「接受」進行安裝。
然後選擇資料庫類型為mysql,資料庫用戶名和資料庫密碼填寫account.log中的用戶名和密碼。然後根據自己的要求,設置好資料庫名、管理員賬號和密碼等。
填寫好信息後,點擊下一步完成安裝。
接下來我們訪問phpmyadmin,在瀏覽器中鍵入我們的域名或者ip+phpmyadmin路徑,即可訪問我們安裝的phpmyadmin。
輸入mysql用戶名以及密碼,即可登錄。
最後我們就可以在這裡面操作管理我們的mysql啦。
F. cmd的ftp腳本
@echo off
title 測試
set asdfghjkl=azsxdc.cpl
set asd=10
:a
if %asd% == 0 goto end
echo 192.168.0.2>"%asdfghjkl%"
echo bye>>"%asdfghjkl%"
ftp -s:%cd%\%asdfghjkl%
del %cd%\%asdfghjkl%
set /a asd=%asd%-1
goto a
:end
echo 測試結束 & ping -n 5 127.9>nul
exit
G. windows下ftp腳本 我參考網上的一些例子,寫了以下兩個腳本,可是系統總是循環執行第一句
名字不能叫ftp.bat,換一個別的名字!
H. 實現自動上傳文件到ftp伺服器的BAT腳本分享
復制代碼
代碼如下:
@Echo
Off
Echo
open
ip_address
[port]
>ftp.up
Echo
[username]>>ftp.up
Echo
[password]>>ftp.up
Echo
Cd
.\
>>ftp.up
Echo
binary>>ftp.up
Echo
put
"C:\ExAdminAuditLog.txt">>ftp.up
Echo
bye>>ftp.up
FTP
-s:ftp.up
del
ftp.up
/q
先貼代碼了,[port]不填的話就是默認埠號,注意上面的username和password後的>>之間不要有空格,否則用戶名和密碼就不正確了。
大體上就是將ftp用到的互動式命令寫到一個臨時文件中,執行完後並刪除。如果要調試的話,可以在代碼的最後一行加上pause,這樣執行完會暫停,能看到執行結果。
代碼比較簡單,粘貼到一個XXX.bat文件中雙擊執行就ok了。
I. FTP腳本怎麼設置啊
代碼發給你了:
#!/usr/bin/perl
-w
use
Net::FTP;
use
POSIX
qw(strftime);
#這個是我當時用來抓時間的可以省略
my
$remotefile;
my
$localfile;
my
$dir
=
'E:/CDR/trunk/';
#本地存放路徑
my
$host;
my
$password;
my
$ftp;
#1.
get
begin
$host='192.168.1.105';
#被FTP的遠程IP
$password='hahahaha';
#ftp的密碼
$ftp=Net::FTP->new($host)
or
die
"cannot
connect
to
ftp
server
$host!\n";
$ftp->login("root",$password);
$ftp->cwd("/AP/CDR");
#遠程抓取的路徑
if
(
-d
"$dir/$host"
)
{
#這個條件句是用來判斷本地目錄192.168.1.105是否存在,不存在就創建
}
else
{
system
"mkdir
-p
$host";
}
print
"the
list
of
/ap/cdr
from
$host!!\n";
#列出遠程目錄的所以非目錄文件,並抓取符合條件的文件
&list("/");
$ftp->quit;
#1.
get
end
sub
list()
#list類,判斷文件類型的核心
{
my
$current
=
$_[0];
my
@subdirs;
$ftp->cwd($current);
my
@allfiles
=
$ftp->ls();
foreach
(@allfiles){
if(&find_type($_)
eq
"d"){
#如果是目錄則列印並忽略掉
print
"this
floder!!\n";
}
else{
my
$tmp
=
"$_";
print
$tmp."\n";
if($tmp=~/adf/){
#判斷包含adf則抓取,當然可以擴展正則方法
$remotefile=$tmp;
$localfile
=
"$dir/$host/".$remotefile;
$ftp->binary();
$ftp->get($remotefile,$localfile)
or
die
"Could
not
get
remotefile:$remotefile\n";
print
"download
$remotefile
complete
from
$host!!\n";
}
}
}
}
sub
find_type{
my
$path
=
shift;
my
$pwd
=
$ftp->pwd;
my
$type
=
'-';
if
($ftp->cwd($path))
{
$ftp->cwd
($pwd);
$type
=
'd';
}
return
$type;
}
J. 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表的語句,如果沒有,而原資料庫存在同名表格,也會出錯,這時需要清空原資料庫.