Ubuntu
調整wordpress 上傳檔案大小限制
網站備份 shell script 篇 FTP 版本
最近因為工作關係,同時要撰寫一個自動備份的shell script 透過crontab 的排成 定期替網站備份
然而我在今天發現一個令人恐怖的事情,就是我忽略的ftp 的傳輸方式有兩種(一個已經執行半年的腳本….他出錯了…)
一種是專門傳送純文字檔的ASCII 模式和 其他用的binary模式。
這兩種方式的最大差别在於ASCII 是一次一個byte 再傳送,接收端接收到後再重新組合,你可以想像成對方也開個空白檔案,在一個字一個字抄過去,那這有什麼問題呢?就是 再換行符號這種地方,會因為不同OS 的設定不同的情況下,做不同的轉換,這就有可能造成檔案變質的問題,而對於壓縮檔來說…..就真的很慘….。
那用 binary傳送文字檔呢?….定多就是換行的地方掛掉而已XD
以下是 經過修正後的腳本
也請大家保留 授權聲明
#!/bin/sh
# Copyright (c) 2012 Chong-Po Liao ([email protected])
#
# This file is free software: you may copy, redistribute and/or modify it
# under the terms of the GNU General Public License version 3 as published
# by the Free Software Foundation.
#
# This file is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see
#
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo 'back up start....'
t=$(date +%Y%m%d)
mysqldump -u帳號 -p密碼 資料庫名稱 > 網站位置/DB.sql
tar zcfp 壓縮檔的位置/webBackUp_$t.tar.gz 網站位置
cd 壓縮檔存放的資料夾位置
ftp -in FTPIP << !
user 帳號 密碼
binary
cd 要放的位置
put webBackUp_$t.tar.gz
quit
!
echo 'done..'
Linux 工作排程設定 crontab
vim 的取代置換功能「s」
( vi 也適用 應該吧…)
文章來源 http://chunchaichang.blogspot.com/2010/08/vim-s.html
在 前面我們所談的那些可以說是比較基本的東西,但是對於一份文件來說,光有前面所介紹的游標移動、刪除等等功能是不足夠的。面對一份文件我們通常會因為某些 緣故而使得我們必須去修改當中固定出現的字串樣式(pattern)成我們想要的樣子。最常遇到的就像中文文件的標點符號問題,或是 un*ix 和 DOS 文件格式之間轉換常會有個 ^M 結尾會讓人覺得很討厭,又或是我們想要把一份 HTML 格式的文件去除掉它的 HTML tag。
對於這些事情來說,拿中文標點符號置換這個很多編輯器都做得到,簡單地說如果想更動的 pattern 是一個固定的字串,那對於一般編輯器來說都不會太困難,但是對於具有固定格式,但字串內容卻不一定的該怎麼辦?就像要去掉 HTML 格式中的所有 HTML tag?這就是 vim 開始大顯身手的地方了。
今天我們不談別的其他指令,就光談在 vim 中的「 :s 」指令。小寫 :s 表示置換(substitute)的意思,不過通常你用 vim 下 :h :s 指令的時候會看到這樣的畫面:
檔案備分的好物~~lftp的 mirror功能
最近因為案子關係,在研究如何讓網站伺服器的資料和另一台備援機同步化
達到 在網站備攻擊癱瘓的時候可以馬上重啟
首先 我這部份的同步化,並沒有達到 零時差同步,指要求每週一次就可以了
這次 我使用的是lftp 這是FTP的 客戶端 軟體 我們要使用的是他的 mirror 指令
以下教學參考自
http://superstanwu.blog.ithome.com.tw/post/775/29721
http://www.thelinuxblog.com/linux-man-pages/1/lftp
1. 安裝lftp
Debain、UBuntu:#sudo apt-get install lftp
Fedora、CentOS:#yum install lftp
2. 確認語系
#locale
3.用vim 或是其他文字編輯器 開啟backup.lftp
open [主機位置]
user [帳號] [密碼]
cd /Hosts/stanserv.com/i (在 FTP上 面的路徑)
mirror -R –only-newer –only-missing –parallel=2 [要備份的本地端目錄]
(想要多個資料夾 就在這邊增加)
exit
4. 執行
#lftp -f backup.lftp
5.完成 之後你可以用crontab -e 設定排程
參數說明 (不負責翻譯,有任何問題,請參考上面第二個參考網址)
參數 | 更詳細的參數 | 說明 |
-c | –continue | 續傳 |
-e | –delete | 遠端沒有的就刪除 |
–delete-first | 在傳輸新的前,先把舊的刪除 | |
-s | –allow-suid | 根據遠端設定suid |
–allow-chown | 設定擋案的所有者和群組 | |
–ignore-time | 比對時忽略時間 | |
–ignore-size | 比對時忽略大小 | |
–only-missing | 沒有的檔案就下載 | |
-n | –only-newer | 下載較新的 |
-r | –no-recursion | 忽略子目錄 |
–no-symlinks | 不創造symbolic links | |
-p | –no-perms | 不設定權限 |
–no-umask | 不使用 umask | |
-R | –revers | 反轉 ,就是指 本地和遠端的身分反轉,下載變上傳,備分到遠端 |
-L | –defference | 下載 symbolic links |
-N | –newer-then=[SPEC] | 下載比指定時間新的檔案 |
–order-then=[SPEC] | 下載比指定時間舊的檔案 | |
–size-range=[RANGE] | 下載在指定檔案大小範圍內的檔案 | |
-P | –parrel=[N] | N條線程 |
–use-pget[-n=N] | 用pget來傳輸每個檔案 | |
–loop | 重複 直到找到改變 |
後面看不懂 就不翻譯了
Ubuntu的壓縮指令測試與教學
本篇文章參考資料
http://linux.vbird.org/linux_basic/0240tarcompress.php\
http://blog.bs2.to/post/EdwardLee/4997
壓縮指令的部分 餐搞第一個鳥歌教學,但是我以理解過後較白化的說明方式,想要看詳細的自己點進去吧
最近剛好接了幾個跟備份有關的cass
所以就開始研究,一些linux 相關的壓縮指令,和其中的差別
Ubuntu 修改時區
本篇文章參考自 http://philipatswarchy.wordpress.com/2007/03/19/ubuntu-change-time-zone/
在弄台東伴手禮的網站的 訪客統計的時候發現
怎麼間跑到明天去了!!!!
等等 不太對阿
台灣已經是 +8 了 再+8 是怎麼回事,最多不是+12嗎?
大概是裝OS 的時候 時間對時出現問題了….
解決方法:
- #sudo tzselect 轉成root後可以捨去sudo
- #5 選擇Asia
- #43 選擇Taiwan,終於有國家名稱了 感動,以前都是 taipei的…
- #sudo ntpdate time.stdtime.gov.tw 更新時間
這樣就可以了
其他定期更新 什麼的 就不重要了
Ubuntu + WordPress 固定網址問題
之前 我曾經寫過一篇 http://www.pupuliao.info/2011/09/wordpress固定網址問題url重寫/
今天我又碰到 類似的問題,第一次在 Ubuntu 的 LAMP 架構下架設網站,當wordpress 設定中文的固定網址時 出了問題
相關技術說明 ,請參考之前寫的那篇
這篇 止寫解決方法
以下是我的處理方式,不保證正確
- #a2enmod rewrite
- 在/etc/apache2/sites-available 中開啟 你網站的設定檔
把檔案中的AllowOverride None改成AllowOverride Al - # /etc/init.d/apache2 restart
這樣應該就OK了
參考資料 http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?viewmode=compact&topic_id=14065&forum=9