2008年2月6日 星期三

Server也來過年啦~~

除夕這一天再貼新的春聯,貼了貼,還剩下了一個「招財進寶」。突然靈機一動,發現還有地方可以貼。

於是就跑到我家的「簡陋機房」^^。把他貼到我的server主機上。

頓時一台老舊的機器。也換上新裝了。哈哈

當然也希望他能替我「招財進寶」嘍!!


2008年2月5日 星期二

免費網路空間 zSHARE 多檔案同時上傳

最近很多人在用的免費網路空間。

zSHARE 網址:http://www.zshare.net/

【空間大小】100 MB
【下載限制】無限制。
【流量限制】無限制。
【檔案類型】無限制。
【砍檔時間】 60天無人下載。
【必須註冊】不用。

上傳教學

單一檔案

第一步:
進入首頁後,就直接點瀏覽(①處)。


第二步:
選取你要上傳的檔案(①處),然後在按下開啟(②處)。


第三步:
選取好後記得要打勾唷(①處),打勾後就可以按下share it(②處)上傳啦。


第四步:
上傳的畫面。



第五步:
上傳完就呈現上面的頁面,①處就是你上傳檔案的下載位址啦!把他copy下來,傳送給別人下載吧!

底下三個連結分別的意思是:
Link for forums:貼在論壇供下載的語法
Direct Link:網頁的連結位址
Delete Link:此檔案的刪除位址



當然多檔案同時上傳也可以呀,方法就跟單一上傳一樣,只不過開多一點分頁or瀏覽器,就可以同時上傳啦^^。(如下圖)

他每次上傳的伺服器都會不一樣,所以不用擔心會被限制住,不過檔案太大的話。有時會出現錯誤唷~具我的經驗,最多還是不要超過兩個以上的檔案同時傳。(我用十個90M大小的檔案同時上傳測試。結果在IE7上只有兩個成功^^。不過我用Firefox同時上傳三個90M的檔案,完全沒出錯。)
要不有一些會錯誤唷,錯了就要重傳啦。




2008年2月4日 星期一

連 linux ftp 出現亂碼 解決方式。

大家如過透過檔案總管,或者是CuteFTP連到某些FTP網站時,有出現亂碼的情況嗎?

這時候就要推薦大家使用FileZilla了。

請大家到FileZilla官方網站下載最新的版本。

最或者直接在這邊下載FileZilla3.0.6 win32 setup for windows作業系統的版本

下載後請安裝它吧。

接下來教大家如何解決亂碼問題。

看圖說故事嘍。很簡單豆。


第一步:
點下①處建立一個新的連線站台。




第二步:
點①處,新增站台,而站台名稱隨便取,自己認得就可以了。
②處:輸入預連線的站台位址(ip也可以)。
➂處:登入模式選擇一般。
④⑤處就是輸入帳號密碼啦。
重點在⑥處,請點字碼集。




第三步:
進入字碼集後,選擇「強制使用UTF-8」。
最後按下連線或者確認就完成啦。^^

2008年2月3日 星期日

安裝 drupal 出現錯誤 Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 311296 bytes)

大家在安裝drupal到一半時,出現以下問題
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 311296 bytes) in /opt/lampp/htdocs/drupal-5.6/modules/locale/locale.install on line 572

這代表說配給php.ini的資源記憶體不夠大,
請大家修改php.ini

以linux下的xampp為例,php.ini是放在/opt/lampp/etc/下

使用root權限打開php.ini
並搜尋字串「memory_limit」


找到後會看到預設是8M,改大就OK啦。
memory_limit= 8M
改成
memory_limit= 16M

或者是在大一點32M也可以。
存檔後重新啟動Apache就ok啦!

這時drupal還是重裝一次吧!^^

Linux 自動 備份 並 刪除 舊的備份檔 教學 適合 CentOS、Fedora、Ubuntu XAMPP

此教學主要是以CentOS 為例並且是安裝XAMPP伺服器套件的環境,不過Ubuntu也是可以。基本上只要是linux都ok。差別址在於"路徑"的問題,因為Ubuntu的路徑比CentOS少一些。
EX:Ubuntu的vsftpd.conf是放在/etc/下
而CentOS的vsftdd.conf則是放在/etc/vsftpd/下
可見Ubuntu在某些資料夾是有些減少與差異的。
只要在做的時候搞清楚就好了。概念都一樣。

備份前的準備。
一、有一個空間放備份檔。(本教學是另外切一顆磁區,並掛載為/back。)
二、瞭解一下怎樣寫shell。其實看本教學應該可以瞭解,要不也可以參考鳥哥的教學。

備份方式分為每週與每日兩種,並且可以自動刪除舊的備份檔。
檔案數量:3支shell檔案。
另外再到/etc/crontab中,寫每日制動執行的程序。
請照以下四個部份看吧。



第一部份
「每日備份mysql中資料庫的資料」
請大家在/back下(你要放備份的資料夾),透過vi或者gedit建立一個檔案名為「mysql_backup_daily.sh」
並編輯以下程式。

#--以下是程式碼-----------------------------------------------------

#!/bin/bash
#===============================================
#程式用途:每日備份mysql的資料庫檔案。
#說明:
#因為我是使用XAMPP架站的。
#所以MySql的資料是放在/opt/lampp/var/mysql。
#
#而此程式目的是備份每天mysql資料夾內的所有資料庫
#並且每個備份檔案都有日期標明。
#
#撰寫完後,再透過/etc/crontab來每日執行備份工作。
#
#
#===============================================
#歷史紀錄
#日期 內容 作者
#2008/2/3 完成第一次的撰寫。每日備份mysql M.K
#
#
# MK http://mkbfb.blogspot.com
#===============================================
#
#設定shell執行路徑,讓此程式在任何地方都可以執行。
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# 1.設定檔名日期,以及備份檔之後要放的地方。
day=`date +%Y-%m-%d`

# 將/back/backup/daily資料夾設定為basedir變數。
basedir="/back/backup/daily"

# 2.XAMPP的MySQL資料夾位置 ( PATH = /opt/lampp/var/mysql )
# 備份前,我們先停止MySQL的運作
/opt/lampp/lampp stopmysql

# 進入/opt/lampp/var/
cd /opt/lampp/var/

# 在/opt/lampp/var/下,將MySQL打包壓縮備份到之後要放的地方。
tar -zcf "$basedir"/mysql."$day".tar.gz mysql

# 再將MySQL啟動
/opt/lampp/lampp startmysql

exit 0

#--程式碼結束-------------------------------------------------------

這樣這一程式,如果跑起來的時候。會將/opt/lamp/var/中的mysql資料夾,壓縮並備份到/back/backup/daily/底下,並且檔名會是mysql.年-月-日.tar.gz(ex: mysql.2008.02.03.tar.gz)。
以後要救資料或恢復資料庫的話,直接解壓縮並覆蓋回去就好嘍!^^



第二部份
「每週日備份重要的檔案」
請大家/back下(你要放備份的資料夾),透過vi或者gedit建立一個檔案名為「system_backup_weekly.sh」
並編輯以下程式。

#--以下是程式碼-----------------------------------------------------

#!/bin/bash
#========================================================
#程式用途:每週日備份系統檔與重要的檔案。
#說明:
#1.先把重要的檔案COPY到備份的資料夾後,
#2.再將這些重要的資料與服務備份起來。
#3.最後刪除COPY的資料,只留下備份檔。
#
# 重要資料與服務包含有:
# 1.使用者資料 userinfo (/home/底下的資料)
# 2.FTP的設定 vsftp (/etc/vsftpd/底下的設定)
# 3.ssh的設定 ssh (/etc/ssh/底下的設定)
# 4.www網頁內容 www (xampp放網頁的資料夾)
# /opt/lampp/htdocs/
# 5.xampp的設定 xampp (/opt/lampp/底下重要的設定)
# 6.sysconfig sysconfig(/etc/sysconfig/底下重要的設定)
# 7.rc.local開機設定 (/etc/rc.d/rc.local)
# 8.crontab例行程式設定 (/etc/crontab)
#
#以上,在M.K的server環境中,是M.K認為重要的檔案。
#若您自己有其他重要的,就加上吧。^^
#
#最後再將此程式加入/etc/crontab,並設定每週日執行
#
#=======================================================
#歷史紀錄
#日期 內容 作者
#2008/2/3 第一次完成 M.K
#
#
#
# M.K http://mkbfb.blogspot.com
#=======================================================
#設定shell執行路徑,讓此程式在任何地方都可以執行。
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
LANG=C;export LANG
LC_ALL=C;export LC_ALL

#設定路徑變數來備份
# 變數basedir等於/back/backup/weekly這個資料夾。
basedir=/back/backup/weekly

#建立備份用的資料夾
mkdir $basedir/userinfo
mkdir $basedir/vsftp
mkdir $basedir/ssh
mkdir $basedir/www
mkdir $basedir/xampp
mkdir $basedir/sysconfig
mkdir $basedir/rc.d
mkdir $basedir/crontab

#設定各個變數路徑
#設定變數userinfod等於/back/backup/weekly/userinfo以下依此類推。
userinfod=$basedir/userinfo
vsftpd=$basedir/vsftp
sshd=$basedir/ssh
www=$basedir/www
xampp=$basedir/xampp
sysconfig=$basedir/sysconfig
rc=$basedir/rc.d
crontab=$basedir/crontab

#1.系統的相關服務,主要服務有:
#(1)vsftpd:
#(2)xampp:
#(3)www網頁內容:
#(4)xampp設定檔


# 1.1 系統的 vsftpd 伺服器的僅有的設定檔喔!
# 將/etc/vsftpd/下的設定檔複製到變數資料夾$vsftpd。
# 以下依此類推。
cp -a /etc/vsftpd/* $vsftpd


# 1.2 系統的 sshd 伺服器的設定檔案!
cp -a /etc/ssh/* $sshd

# 1.3 系統的 www 網頁內容檔案!
cp -a /opt/lampp/htdocs/47 $www
cp -a /opt/lampp/htdocs/drupal-5.6 $www

# 1.4 系統的 xampp 設定檔案!
cp -a /opt/lampp/etc $xampp
cp -a /opt/lampp/phpmyadmin $xampp
cp -a /opt/lampp/phpsqliteadmin $xampp

# 1.5 其他需要備份的資料或設定檔
cp -a /etc/sysconfig/* $sysconfig
cp -a /etc/rc.d/rc.local $rc
cp -a /etc/crontab $crontab


sleep 10s
sync;sync

# ==============================================================
# 2. 主機的重要資料
# (1) 使用者的資訊,重點在 /etc/passwd, shadow, group。
cp -a /etc/group $userinfod
cp -a /etc/passwd $userinfod
cp -a /etc/shadow $userinfod

#將使用者的家目錄/home打包起來(注意:在這裡沒有壓縮唷)。
#並省略home/lost+found這個資料夾。
cd /
tar -pcf $userinfod/home.tar /home --exclude home/lost+found

sleep 10s
sync;sync

# ==============================================================
# 3. 將主機的重資料壓縮。並將檔案加上日期。
#設定日期變數day
day=`date +%Y-%m-%d`

#到變數basedir,也就是/back/backup/weekly這個資料夾。
#將複製好的所有檔案打包並壓縮。
cd $basedir
tar -zpcf sys_backup_weekly."$day".tar.gz * --exclude sys_backup_weekly."$day".tar.gz


#刪除剛剛所有複製過來的資料,只留下,以節省空間。
rm -rf $basedir/userinfo
rm -rf $basedir/vsftp
rm -rf $basedir/ssh
rm -rf $basedir/www
rm -rf $basedir/xampp
rm -rf $basedir/sysconfig
rm -rf $basedir/rc.d
rm -rf $basedir/crontab

sleep 10s
sync;sync

exit 0

#--程式碼結束-------------------------------------------------------

這一程式,如果執行的時候。會將程式碼中有列出的資料夾與檔案,壓縮並備份到/back/backup/weekly/底下,並且檔名會是sys_backup_weekly.年-月-日.tar.gz(ex: sys_backup_weekly.2008.02.03.tar.gz)。
以後要救資料或恢復資料庫的話,直接解壓縮並覆蓋回去就好嘍!^^



第三部份
「自動刪除舊的備份檔」

請大家再/back下(你要放備份的資料夾),透過vi或者gedit建立一個檔案名為「del_old_backupfile.sh」
並編輯以下程式。

#--以下是程式碼-----------------------------------------------------

#!bin/bash
#==========================================
#程式用途:刪除舊的備份檔。
#說明:
#因為我們的備份有分「每週系統備份」與「每日mysql備份」。
#所以要刪除的備份檔,分為每日與每週兩部份:
#
#1.刪除十天前,每日舊的mysql備份檔。
# mysql備份檔案放在/back/backup/daily/下
# ex:檔名為mysql.2008-02-03.tar.gz
# mysql. 年 -月-日.tar.gz
#
#2.刪除三週前,每週舊的統備份檔。
# 系統備份檔案放在/back/backup/weekly/下
# ex:檔名為backupweekly.2008-02-03.tar.gz
# backupweekly. 年 -月-日.tar.gz
#
#
#===========================================
#
#日期 內容 作者
#2008/2/3 第一次完成 M.K
#
#
#
# MK http://mkbfb.blogspot.com
#===========================================
#設定shell執行路徑,讓此程式在任何地方都可以執行。
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

#1.刪除十天前,的舊每日備份檔
date10=`date --date='10 days ago' +%Y-%m-%d`

rm -rf /back/backup/daily/mysql."$date10".tar.gz


#2.刪除21天前,的舊每週備份檔
date21=`date --date='21 days ago' +%Y-%m-%d`

rm -rf /back/backup/weekly/sys_backup_weekly."$date21".tar.gz

exit 0

#--程式碼結束-------------------------------------------------------

以上的日期大家可以是自己的情況而定,若你的備份空間夠大,就放久一點ㄅ^^。
比如:
我要改成自動刪除一個月前的備份檔案。
以刪除每日備份的例子,將數字改成你要的天數就可以了。
date10=`date --date='10 days ago' +%Y-%m-%d`
rm -rf /back/backup/daily/mysql."$date10".tar.gz

修改成
date30=`date --date='30 days ago' +%Y-%m-%d`
rm -rf /back/backup/daily/mysql."$date30".tar.gz


以上三支檔案都寫好了後,怎樣那他順利自動執行呢。
這時請看第四部份嘍。



第四部份
「將以上三支檔案寫入/etc/crontab裡,
讓備份程式例行運作」


請用vi或者gedit,編輯/etc/crontab這支檔案。
並加入以下程式碼。就可以了。


#--以下是程式碼-----------------------------------------------------

#buckup shell script auto run
30 3 * * 0 root /back/system_backup_weekly.sh
30 2 * * * root /back/mysql_backup_daily.sh

#delect old backupfiles
35 3 * * * root /back/del_old_backup_file.sh

#--程式碼結束-------------------------------------------------------

此程式的意思是
1.每星期日的凌晨03:30使用root執行/back/system_backup_weekly.sh這支檔案。(所以就會每一星期備份系統檔案一次。)
2.每天的凌晨02:30使用root執行/back/mysql_backup_daily.sh這支檔案。(所以就會每一天備份mysql資料)
3.每天凌晨3:35自動刪除10天前的mysql資料與三禮拜(21天)前的系統備份檔。


參考資料:鳥哥的linux私房菜-淺談備份策略教學