ad

2011年11月30日 星期三

rsync 同步

---------------------------------------------------------------------------------
| [root@www ~]# rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path] |
| 選項與參數: |
| -v :觀察模式,可以列出更多的資訊,包括鏡像時的檔案檔名等; |
| -q :與 -v 相反,安靜模式,略過正常資訊,僅顯示錯誤訊息; |
| -r :遞迴複製!可以針對『目錄』來處理!很重要! |
| -u :僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋; |
| -l :複製連結檔的屬性,而非連結的目標原始檔案內容; |
| -p :複製時,連同屬性 (permission) 也保存不變! |
| -g :保存原始檔案的擁有群組; |
| -o :保存原始檔案的擁有人; |
| -D :保存原始檔案的裝置屬性 (device) |
| -t :保存原始檔案的時間參數; |
| -I :忽略更新時間 (mtime) 的屬性,檔案比對上會比較快速; |
| -z :在資料傳輸時,加上壓縮的參數! |
| -e :使用的通道協定,例如使用 ssh 通道,則 -e ssh |
| -a :相當於 -rlptgoD ,所以這個 -a 是最常用的參數了! |
| 更多說明請參考 man rsync 的解說! |
----------------------------------------------------------------資料來源:鳥哥----

rsync玩一玩其實發現滿簡單的
首先先設定金鑰 參考
這樣同步時才免輸入密碼
如果要讓程式自己跑更是需要設定金鑰這樣才有辦法同步

參考鳥哥列出來的參數其實說的很清楚了
我直接用舉例的來說明

假設 1. : 我在本機端 /home/www/ 要'更新'至 192.168.1.100底下的/home/www/ (本機備援至.100 時使用)

執行以下程式碼

rsync -av -e ssh /home/www/* 192.168.1.100:/home/www/
(-a = -rlptgoD 也就是保留所有屬性囉)

會把 /home/www/ 的資料更新至 192.168.1.100上
這樣192.168.1.100上的/home/www 資料就會跟 /home/www底下一模一樣了

假設 2. :我在本機端 /home/www/ 要'同步'至 192.168.1.100底下的/home/www/ (兩台資料都要是最新的, 兩台同步時使用)

rsync -auv -e ssh /home/www/* 192.168.1.100:/home/www/
(-u = 僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋,意指兩台都會是最新的)

會把 /home/www/ 的資料同步至 192.168.1.100上
這樣本機上的/home/www有如果比.100上檔案更新就會更新至 .100的/home/www底下
但如果要達到兩台都是最新的
同樣的在.100更新時也要設定

rsync -auv -e ssh /home/www/* 192.168.1.XXX:/home/www/
(xxx為本機ip )

同步開始~~~over

---------2012.01.02更新----------------------------------------------------------------------------

我之前說得如果要全部同步要加上 -delete
這樣在本機如果有刪除資料 那遠端也會一起刪除資料

2011年11月24日 星期四

公鑰,私鑰設定,ssh or scp 免密碼設定

進入家目錄底下的.ssh/

cd ~/.ssh

產生金鑰

ssh-keygen -t dsa

執行之後他會問你檔名(隨便取)
Generating public/private dsa key pair.
Enter file in which to save the key (/home/weishihchen/.ssh/id_dsa):XXXXX

之後他會問你密碼,這個是金鑰的密碼,我會設空值,用金鑰加密就是為了要免密碼登入
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

輸入好後,會產生兩個檔案,一個私鑰XXXX,一個公鑰XXXXX.pub
把公鑰傳到目標主機家目錄下.ssh/

把公鑰內容加到 authorized_keys

cat XXXXX.pub >> authorized_keys

這樣就大公告成了

2011年11月15日 星期二

ubuntu安裝Magickwand套件by php model

同事在我的電腦架了測試server
但是他截圖需要MagickWand這個套件
他裝不進去
幫他爬了一下文
發現可以去
http://www.magickwand.org/download/php/
這個官網找最新版本的
下載後解壓縮
$phpize5
$./configure
$make
$make install
安裝好後
網路爬文是說在php.ini加入
extension=magickwand.so
這一行重啟就可以
但小編用的ubuntu不是這樣
要在要在
/etc/php5/conf.d/下
建立一個magickwand.ini
裡面新增extension=magickwand.so
重啟apache
這樣在phpinfo就看得到嚕

2011年11月14日 星期一

Ubuntu 下 chrome 遇到 javascirpt 死掉問題 (crash)

的在開發網頁時意外發現怎麼有些javascript地方chrome都crash壞掉了
爬了一下文
少了一些plugin
我哪知道有哪些plugin
直接到soft center尋找
我打了javascript chrome


找到了V8 JavaScript Engine
安裝下去我的script都可以動囉
供大家參考嚕

2011年9月13日 星期二

phpmyadmin設定遇到的問題

因為電腦升級11.04沒弄好一不小心把電腦給炸了
重灌好後~所有的設定都要重新設定
當我把phpmyadmin載來解壓縮放在/var/www下後
竟然不能執行

顯示:缺少 mcrypt 外掛。請檢查 PHP 設定
sudo apt-get install mcrypt
sudo apt-get install php5-mcrypt
把他裝起來

後來又發現:Cookies 必须启用才能登入
爬文爬了一下
需要設定config檔
首先進入phpmyadmin資料夾
把config.sample.inc.php 複製成config.inc.php
進入config.inc.php
修改$cfg['blowfish_secret'] = '' 成=>
$cfg['blowfish_secret'] = 'cookie'

此時重啟應該就沒問題了
但是竟然又有新的問題就是重啟不了

輸入;sudo service mysql restart
出現了以下的錯誤

Warning: Fake initctl called, doing nothing.

我又爬了文

sudo mv /sbin/initctl /sbin/initctl.FAKE
sudo ln -s /sbin/initctl.REAL /sbin/initctl

然後重啟

sudo service mysql start

解決Warning:Fake initctl called,doing nothing文章來源

就可以正常使用嚕

2011年9月7日 星期三

小米機影片懶人包


小米機測試影片


有人把他給拆了


那麼堅強的盒子寄到台灣應該沒問題的


miui在i9000上的測試

2011年8月29日 星期一

殺手級的android小米機

朋友丟了一個連結給我
小米機官網
我看了一下他的規格
我只能說太殺了
4।0吋電容式螢幕
雙核1.5GHz
1G的RAM
4G的ROM
光圈2.4的八百萬畫素相機
149g
還有將近兩千毫安的電池~雖然要看他的耗電量才能說這樣的電池大不大
但數字已經說明了他功能強大

他本身就是大陸強大的rom製作團隊miui所出品的手機
重點在他只要不到一萬塊手機
這叫三星宏達電怎麼生存阿!!

----------------------------------------------------------------------------------------------------
miui官網

或許有些人對miui有點陌生
我之前有刷過用了一陣子(在下使用 htc desire)
真的非常的好用
他偷了很多iphone的好處
保留了很多android的好處
兩者結合~真的要感謝大陸對智慧財產的不保護
才有功能如此完善的系統可以用
但是有兩個原因我把他刷回sense 在外加 ADW
因為他是大陸人寫得~非常的客製化大陸地區所以

第一、電話簿沒有整合facebook~讓我的聯絡人全沒有照片,二來用facebook分享資訊接收朋友狀態已經是我對智慧型手機最常用到的功能

第二、電話號碼只要有+886 他就會顯示中國台灣

以上這兩點~讓我用沒多久又用回台灣
希望有高手可以解決這兩個問題~
我想我又會重回miui的懷抱吧

2011年8月22日 星期一

將firefox丟到tmpfs裡執行

不用設定,預設就有tmpfs可以用
ubuntu預設了一半的ram給/dev/shm這個tmpfs用
由於現在的ssd還是太貴了
我在開發網頁時通常只會開啟firefox terminal 偶爾會開chrome opera來doble check css問題
現在firefox資源越吃越多facebook養個魚整個browser就很頓(我的電腦沒有很好)
偶然機會下我在玩tmpfs
想到乾脆把執行檔整個丟到tmpfs裡面去執行
速度應該可以用飛得吧

我寫了一個小shell script

#首先我先把電腦裡的firefox移除,去官網載下firefox-6.0.tar.bz2
#下載網址
#http://moztw.org/firefox/download/latest-linux.html
#tar -jxvf firefox-6.0.tar.bz2
#把/firefox 移到/home/wsc 底下
#把以下的shell script寫進firefox.sh 裡

#/bin/bash
PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin

rm -r /dev/shm/firefox/;
cp -r /home/wsc/firefox /dev/shm/firefox/;
rm /usr/bin/firefox;
ln -s /dev/shm/firefox/firefox /usr/bin/firefox;

在termianl底下執行firefox.sh firefox就會移到/dev/shm底下,連結到/usr/bin底下嚕

flash作法也是一樣
只是flash的檔案在 /usr/lib/flashplugin-installer/的libflashplayer.so
我找好久才找到

以下是我寫flash.sh的shell script

#/bin/bash
PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin;

rm -r /dev/shm/flash/;
mkdir /dev/shm/flash/;
cp /home/weishihchen/libflashplayer.so /dev/shm/flash/libflashpalyer.so;
rm /usr/lib/flashplugin-installer/libflashplayer.so
cd /usr/lib/flashplugin-installer/;
ln -s /dev/shm/flash/libflashpalyer.so /usr/lib/flashplugin-installer/libflashplayer.so;

ok~enjoy 飛快的瀏覽器吧

另外一題
寫了shell script每次開機都要執行也太low了
但我怎麼移到rcx.d rc.local等等開機都沒辦法使用
還好有找到文
以下是分享給大家~

設定開機執行文章網址

把他的檔案改成firefox.sh 跟flash.sh就可以嚕

在這篇文章結束前大家也要記得把cache移到/dev/shm唷
  1. 進入about:config
  2. 新增名為browser.cache.disk.parent_directory字串,內容為/dev/shm
  3. 設定browser.cache.disk.enable為true
  4. 重新啟動Firefox
設定cache參考資料



2011年8月18日 星期四

ffmpeg-php Warning

相信很多人跟我一樣在redhat環境下安裝ffmpeg-php套件時出了問題
用phpinfo()及php -m檢查
ffmpeg 始終沒有load

用下面指令測試ffmpeg
php -r "phpinfo()" | grep ffmpeg
出現以下Warning:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/ffmpeg.so' - /usr/lib/php/modules/ffmpeg.so: undefined symbol: _php_create_ffmpeg_frame in Unknown on line 0
PHP Parse error: syntax error, unexpected $end in Command line code on line 1
[root@news-lab ffmpeg-php-0.6.0]# php -r "phpinfo();" | grep ffmpeg
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/ffmpeg.so' - /usr/lib/php/modules/ffmpeg.so: undefined symbol: _php_create_ffmpeg_frame in Unknown on line 0

爬文爬了很久終於找到解決方法
以我載ffmpeg0.6.0為例
我把壓縮檔複製到 /usr/local/src/下

tar jxvf ffmpeg-php-0.6.0.tbz2

cd ffmpeg-php-0.6.0/

phpize //請先行安裝

vi ffmpeg_frame.c //關鍵在這個檔案裡

:1,$s/PIX_FMT_RGBA32/PIX_FMT_RGB32/g
//用vi將PIX_FMT_RGBA32全部取代成PIX_FMT_RGB32
//跳出後

./configure

make
//這時候會有error

將ffmpeg_frame.loT 改成 ffmpeg_frame.lo

再次make

make install

將/etc/php.ini加上
extension=ffmpeg.so

/etc/init.d/httpd restart

enjoy it

Fatal error: Call to a member function find() on a non-object 問題

Notice (8): Undefined property:  XooXooController::$User [APP/controllers/app_controller.php, line 58]
Fatal error: Call to a member function find() on a non-object /home/web/app/controllers/app_controller.php on line 58

今天遇到了這個問題
我增加了一個controller
執行時在app_controller 時就遇到這個問題
爬文爬了很久
發現一個解決的方法
我有問題的model是User
在app_controller beforeFilter()
最前面加上
$this->loadModel('User');
這樣就沒有錯誤囉~

loadModel(string $modelClass, mixed $id)
註:
如果你想加载一些不是控制器默认的模型或者不是与控制器关联的模型,loadMode方法可以轻易地完成。


2011年7月11日 星期一

Javascript刷新頁面的幾種方法:

Javascript刷新頁面的幾種方法1 history.go(0)
2 location.reload()
3 location=location
4 location.assign(location)
5 document.execCommand('Refresh')
6 window.navigate(location)
7 location.replace(location)
8 document.URL=location.href

2011年7月7日 星期四