顯示具有 教學 標籤的文章。 顯示所有文章
顯示具有 教學 標籤的文章。 顯示所有文章

2015年4月27日 星期一

常用的筆記型電腦開機快速鍵


筆電為了備份或還原系統,需在開機時按快速鍵設定BIOS、進開機選單或還原畫面,每家所使用的快速鍵都不太一樣,下表為常用的各家筆電進入BIOS、開機選單或還原畫面所使用的鍵盤快速鍵。
廠牌
BIOS
開機選單
還原鍵
宏碁(ACER
F2
F12
Alt+F10
華碩(ASUS
F2
ESC
F9
BENQ


F10
技嘉
CTRL + F1
F9
HP
F2
F9
F3F11
SONY
F2
F10
IBM(聯想)
F1
F6
F11
東芝(Toshiba)
BIOS先打開電腦電源開關,按住「ESC」,注意一定要在『In Touch with Tomorrow』出現之前,聽到「嘀」一聲,然後按F1鍵,即可進入BIOS
如果按C鍵,將顯示選擇引導途徑菜單,可以選擇從光驅、硬盤、網絡、軟盤 來引導操作系統
按電源鍵後出現進入BIOS選項時,按 0 開始硬碟還原
其他品牌
啟動/重新啟動按F2



筆電 系統還原快速鍵,大部份鍵還原(硬碟還原)都是於廠商logo的畫面下按還原快速鍵

2015年4月26日 星期日

升級windows 8.1 瀏覽器都無法上網

有使用者原本使用 window 8 作業系統,依循 windows update 更新到 windows 8.1 ,卻發現變成了無法上網。
狀況:
-1. 瀏覽器不論是 IE、Firefox、Chrome 都無法瀏覽網頁,近端遠端都不行,以 F12 Network timeline 只觀察到一個無法連線的回應。
-2. TCP/IP 設定都正常
-3. 使用其他設備測試過,線路是正常的。
-4. Ping 預設閘道器 - OK 有回應
-5. nslookup 查詢網域 - OK 有回應
-6. 以其他通訊協定如FTP對外連線 - OK 有回應

解決方式:
「以系統管理員身份執行」「命令提示字元(DOS視窗)」,然後執行  netsh winsock reset 就搞定了。
而這個指令 netsh winsock reset 的目的是:重設 Winsock Catalog 到一個初始狀態。所有之前安裝的 Winsock 層次服務提供者必須重新安裝。這個命令不影響 Winsock 命名空間提供者項目。

詳細 netsh 的指令用法可以參考:
http://msdn.microsoft.com/zh-tw/library/cc738592(v=ws.10).aspx 
http://msdn.microsoft.com/zh-tw/library/windows/desktop/bb736546(v=vs.85).aspx 

底下是 netsh 基本的 help manual
>netsh help
下列是所有可用的命令:
這個內容中的命令:
? - 顯示命令清單。
add - 新增項目清單中的設定項目。
advfirewall - 變更到 `netsh advfirewall' 內容。
branchcache - 變更到 `netsh branchcache' 內容。
bridge - 變更到 `netsh bridge' 內容。
delete - 刪除項目清單中的設定項目。
dhcpclient - 變更到 `netsh dhcpclient' 內容。
dnsclient - 變更到 `netsh dnsclient' 內容。
dump - 顯示設定指令檔。
exec - 執行指令檔。
firewall - 變更到 `netsh firewall' 內容。
help - 顯示命令清單。
http - 變更到 `netsh http' 內容。
interface - 變更到 `netsh interface' 內容。
ipsec - 變更到 `netsh ipsec' 內容。
lan - 變更到 `netsh lan' 內容。
mbn - 變更到 `netsh mbn' 內容。
namespace - 變更到 `netsh namespace' 內容。
nap - 變更到 `netsh nap' 內容。
netio - 變更到 `netsh netio' 內容。
p2p - 變更到 `netsh p2p' 內容。
ras - 變更到 `netsh ras' 內容。
rpc - 變更到 `netsh rpc' 內容。
set - 更新組態設定。
show - 顯示資訊。
trace - 變更到 `netsh trace' 內容。
wcn - 變更到 `netsh wcn' 內容。
wfp - 變更到 `netsh wfp' 內容。
winhttp - 變更到 `netsh winhttp' 內容。
winsock - 變更到 `netsh winsock' 內容。
wlan - 變更到 `netsh wlan' 內容。
下列是可使用的子內容:
advfirewall branchcache bridge dhcpclient dnsclient firewall http interface ips
ec lan mbn namespace nap netio p2p ras rpc trace wcn wfp winhttp winsock wlan
如果您要檢視命令的說明,請輸入該命令,後面接著一個空格,
然後輸入 ?。

>netsh winsock /?
下列是所有可用的命令:
這個內容中的命令:
? - 顯示命令清單。
audit - 顯示已安裝並移除的 Winsock LSP 清單。
dump - 顯示設定指令檔。
help - 顯示命令清單。
remove - 從系統上移除 Winsock LSP。
reset - 重設 Winsock Catalog 到一個初始狀態。
set - 設定 Winsock 選項。
show - 顯示資訊。
如果您要檢視命令的說明,請輸入該命令,後面接著一個空格,
然後輸入 ?。

2012年2月9日 星期四

PHP 5.3.x 的 strtotime() 時區設定 警告訊息修正

Debian Linux 使用 testing 的話, 若於上星期有做過 dist-upgrade 的話, 就會發現 PHP 已經被升級到 5.3.1-5, 而且出現一堆警告訊息.
我遇到的有下面這三種錯誤訊息:
  1. PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /tmp/a.php
  2. PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/imagick.so' /usr/lib/php5/20090626/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0
  3. PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0

strtotime() 修正

  • PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /tmp/a.php
strtotime() 出現的這個警告是要我們先指定正確的時區(Timezone), 再來使用這個 function.
解法下述幾種 (挑其一即可, 建議用 1 或 3 的方法)
  1. 於 PHP 檔案內使用 date_default_timezone_set()
    ex:
    date_default_timezone_set('Asia/Taipei');
    echo strtotime('2010-03-01');
    ?>
  2. 設定 php.ini
    vim /etc/php5/apache2/php.ini # 於 php.ini 的 date.timezone
    ;date.timezone =
    改成
    date.timezone = "Asia/Taipei"
  3. 設定 php.ini (於 Debian 比較建議這樣做, 就不用去分別改 apache / cgi / cli 的 php.ini)
    vim /etc/php5/conf.d/date_timezone.ini # 於此檔案加下述
    date.timezone = "Asia/Taipei"

PHP Startup: Unable to load dynamic library 修正

  • PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/imagick.so' /usr/lib/php5/20090626/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0
發現下述這幾個都不見了 (php5-imagick, php5-mhash, php-apc)
  • /usr/lib/php5/20090626/apc.so
  • /usr/lib/php5/20090626/mhash.so
  • /usr/lib/php5/20090626/imagick.so
  • php5-mhash 已經包進去, 不需另外安裝, imagick、apc 目前還沒看到.
解法
  • rm /etc/php5/cli/conf.d/apc.ini /etc/php5/cli/conf.d/imagick.ini /etc/php5/cli/conf.d/mhash.ini

Comments starting with '#' are deprecated 修正

  • PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0
cat /etc/php5/cli/conf.d/imagick.ini # 第一行有個註解 "#"
解法
  • 在 PHP 5.3.x 這些 ext 的註解已經不建議使用 "#", 所以將這個註解拿掉, 或者將 "#" 改成 ";" 開頭即可. (開頭 ; 也是註解的意思)

2012年2月7日 星期二

Linux 掛載 USB 隨身碟

建立掛載點

mkdir /mnt/usb

查看目前磁碟的狀態
fdisk -l

掛載usb
mount /dev/sdc /mnt/usb

卸載usb
umount /dev/sdc

Linux掛載USB隨身碟for backup

mount 指令為將周邊裝置掛入的指令


格式:mount -t 檔案系統類型 -o 選項 裝置 掛入點

範例:mount -t iso9660 /dev/hdb /mnt/cdrom

——–若硬碟檔案系統為fat32

mount -t vfat /dev/hdb# /mnt/usb



ps. NTFS系統,Linux不支援,要另外下載driver(至少我的server是看不到的)

<準備工作>

1. mkdir /mnt/usb

2. 格式化usb隨身碟或是usb界面的硬碟

3. fdisk –l 查看目前磁碟的狀態(這樣才可以找到正確得usb編號#)

———————————–

* 掛載隨身碟



請拿出你的隨身碟並插入 Linux 主機的 USB 槽中!注意,你的這個隨身碟不能夠是 NTFS 的檔案系統喔! 接下來讓我們測試測試吧!



範例五:找出你的隨身碟裝置檔名,並掛載到 /mnt/flash 目錄中

[root@www ~]# fdisk -l

…..中間省略…..

Disk /dev/sda: 8313 MB, 8313110528 bytes

59 heads, 58 sectors/track, 4744 cylinders

Units = cylinders of 3422 * 512 = 1752064 bytes



Device Boot Start End Blocks Id System

/dev/sda1 1 4745 8118260 b W95 FAT32

# 從上的特殊字體,可得知磁碟的大小以及裝置檔名,知道是 /dev/sda1



[root@www ~]# mkdir /mnt/flash

[root@www ~]# mount -t vfat -o iocharset=cp950 /dev/sda1 /mnt/flash

[root@www ~]# df

Filesystem 1K-blocks Used Available Use% Mounted on

…..中間省略…..

/dev/sda1 8102416 4986228 3116188 62% /mnt/flash

如果帶有中文檔名的資料,那麼可以在掛載時指定一下掛載檔案系統所使用的語系資料。 在 man mount 找到 vfat 檔案格式當中可以使用 iocharset 來指定語系,而中文語系是 cp950 , 所以也就有了上述的掛載指令項目囉。



萬一你使用的是隨身硬碟,也就是利用筆記型電腦所做出來的USB磁碟時,通常這樣的硬碟都使用 NTFS 格式的~ 怎辦?沒關係,可以參考底下這個網站:(註8)



* NTFS 檔案系統官網:Linux-NTFS Project: http://www.linux-ntfs.org/

* CentOS 5.x 版的相關驅動程式下載頁面:http://www.linux-ntfs.org/doku.php?id=redhat:rhel5



將她們提供的驅動程式捉下來並且安裝之後,就能夠使用 NTFS 的檔案系統了! 只是由於檔案系統與 Linux 核心有很大的關係,因此以後如果你的 Linux 系統有升級 (update) 時, 你就得要重新下載一次相對應的驅動程式版本喔!

———————————-

檔案系統

minix Linux 最早使用的檔案系統

ext2 Linux 目前使用的檔案系統

msdos MS-DOS 的 FAT

vfat Windows 95 的 FAT32

nfs 網路檔案系統

iso9660 光碟格式

ntfs Windows NT 4.0 的檔案系統

hpfs OS/2 的檔案系統

auto 自動偵測

============================================

NTFS 與 FAT 及 FAT32 的比較

============================================

NTFS 執行 Windows 2000、Windows XP 或 Windows Server 2003 系列產品的電腦,可以存取本機 NTFS 磁碟分割上的檔案。執行 Windows NT 4.0 搭配 Service Pack 5 或更新版本的電腦可能可以存取部份檔案。其他作業系統則不允許進行本機存取。

雖然檔案無法大於檔案所在的磁碟區或磁碟分割,最大的檔案大小仍可到 16 TB 減 64 KB。



FAT32若要存取本機磁碟分割上的檔案,只能透過 Windows 95 OSR2、Windows 98、Windows Millennium Edition, Windows 2000、Windows XP,以及 Windows Server 2003 系列產品進行。

檔案大小上限為 4 GB。





http://linux.vbird.org/linux_basic/0230filesystem.php (Vbird)



http://technet.microsoft.com/zh-tw/library/cc779002%28WS.10%29.aspx



http://www.hoyo.idv.tw/software/OpenSource/command/mount.htm



http://blog.xuite.net/wizardyuy/pcblog/13024537



http://blog.blueshop.com.tw/miceyen/archive/2005/12/28/15676.aspx



掛載USB隨身碟

新增一個資料夾給隨身碟用例如 mkdir /mnt/usb, 再 mount /dev/sda1 /mnt/usb 即可
cd /mnt/usb 就可以讀usb內的資料了
註 : 可以下dmesg 看usb 使用哪一個名稱 sda1,sda2 or sda sdb

Apache配置之URL重寫

wordpress中的永久連結需要Apache支援url重寫,於是配置了一下。

1、修改apachehttpd.conf文件,將下面語句前的#去掉
#LoadModule rewrite_module modules/mod_rewrite.so
2、修改apachehttpd.conf檔,將對應的節中的AllowOverride None 改為AllowOverride All,如

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
3、在需url重寫的目錄下建立.htaccess檔,wordpress在開啟永久連結後會只能生成,內容如下:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
效果就是如本文連結http://witmax.cn/apache-url-rewrite.html,其實並不存在這個目錄,而是通過url重寫由index.php來解析支持。

2012年2月6日 星期一

Drupal 備份與轉移



備份壓縮,相對路徑的範例:
tar -jpcv -f sites.tar.bz2 -C ~/public_html sites  (壓縮public_html/sites之下的資料)

解壓縮則是:
tar -jpxv -f sites.tar.bz2 -C ~/public_html/twtcsl  (不用放sites,會解成sites這個目錄)

MySQL:
備份
mysqldump -u 使用者 -p 資料庫> drupal.sql

還原
mysql -u 使用者 -p 資料庫 < drupal.sql

改sites/default/settings.php這個檔
$db_url = mysql://xxxx:xxxx@localhost/drupal';

clean_url 的問題。參考:http://drupal.org/node/367616

簡單說就是用回複雜的方式,要登入就是 網址?q=user  然後不管跳到哪頁都要加?q=,把clean_url先改掉,或是主機直接設定好就行。

主機設定clean_url的方式:http://drupal.org/node/15365

2012年2月2日 星期四

系統異常關機修復方式 FSCK(慎用)

首先先開機進入 Single Mode ,以 FreeBSD 6 為例,開機選單按 4 即可進入 Single Mode
接下來進去後先按一下 Enter ,以我的系統為例,輸入下列指令

# mount -a
# df
/dev/da0s1a   10154158      70668   9271158     1%    /
devfs                1          1         0   100%    /dev
/dev/da1s1d 2055518950 1106617646 784459788    59%    /home
/dev/da0s1e   10154158    1037240   8304586    11%    /tmp
/dev/da0s1f   80729226   30448924  43821964    41%    /usr
/dev/da0s1d   81245672     800846  73945174     1%    /var
先確認有哪些目錄後,就一個一個 umont 做 fsck 修復的動作,修復完再 mount 回來
# umount /home
# fsck -y /home
# mount /home
若一開始連 / 都 mount 不起來的話,記得要先 fsck 根目錄才行唷!

用 du 將目錄中的總容量算出來

原始文章連結:http://phorum.study-area.org/viewtopic.php?t=16977

怎麼用 du 將目錄中所有目錄的總容量算出來?
要算的是目錄中各個子目錄分別的容量,指令可以這樣下...
#du -cSh /path/*

如果不懂的話...可以 man du ...用底下的方式..更一目了然囉...
#du -h --max-depth=2 /path/*

--max-depth=N
       print the total for a directory (or file, with --all) only if it
       is   N   or  fewer  levels  below  the  command  line  argument;
       --max-depth=0 is the same as --summarize 


du -f

SSH 安全設制

大部份的 ssh daemon 設定檔都是放在 /etc/ssh/sshd_config, 於 ssh 本身來說, 它自己就是一個安裝的遠端登入機制, 在您傳送的任何一筆資料都給予加密, 讓資料傳送之間更為安全. 但是政策上的考量, 安全的規劃上, 有些原本的條件可能太過於開放, 所以在此提供一些小技巧, 來達到更符合客制化的 ssh 環境.
以下的修改檔都是在 /etc/ssh/sshd_config, 而在修改完之後請重新啟動 sshd:
[root@rhel ssh]# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
[root@rhel ssh]#
修改 ssh 聆聽埠
預設 sshd 是聆聽 port 22 的連接埠, 如果要更改請使用 Port 參數, Port 語法後面接著要讓 sshd 聆聽的連接埠口, 如果要一次聆聽多個, 那麼就再使用 Port 指定其它的連接埠, 以下會讓 sshd 重新聆聽 22 和 1234 的 Port.
Port 22
Port 1234
重新啟動 sshd 之後, 再使用 netstat 看看 22 和 1234 是否有被 listen.
[root@rhel ssh]# netstat -ntulp | egrep  '(sshd)|(PID)'
Proto  Recv-Q  Send-Q  Local Address  Foreign Address  State   PID/Program name
tcp         0       0  0.0.0.0:1234   0.0.0.0:*        LISTEN  9769/sshd
tcp         0       0  0.0.0.0:22     0.0.0.0:*        LISTEN  9769/sshd
[root@rhel ssh]#
限制以 root 以 ssh 方式登入
root 是個強而有力的帳號, 管理習慣上, 應該要避免使用 root 直接登入, 這樣可以養成使用一般權限登入的習慣, 另一個好處也是可以避免被使用字典攻擊 (即使用 root 帳號為主, 不斷猜測密碼). 下面的方法會讓 root 無法使用 ssh 登入.
PermitRootLogin no
設定 ssh 所聆聽的連線 IP
預設 sshd 是聆聽所有的 IP 位置 (0.0.0.0), 也包含 127.0.0.1 的本機 loop back IP, 如果要指定 sshd 只聆聽某個特定的 IP 時, 使用 ListenAddress 就可以達成, 大部份會這麼做的原因可能是在一台 Linux Getway 的主機上限制只有某些網段的 IP 才可以使用 sshd 登入. 下面的示範會讓主機聆聽 11.22.33.44 和 192.168.1.1 的介面 (不包含 127.0.0.1)
ListenAddress 11.22.33.44
ListenAddress 192.168.1.1
重新啟動之後看看 sshd 有沒有只 listen 指定的 IP Address.
[root@siva ssh]# netstat -ntulp | egrep '(sshd)|(PID)'
Proto  Recv-Q  Send-Q  Local Address      Foreign Address  State   PID/Program name
tcp         0       0  11.22.33.44:6211   0.0.0.0:*        LISTEN  9839/sshd
tcp         0       0  192.168.1.1:6211   0.0.0.0:*        LISTEN  9839/sshd
tcp         0       0  11.22.33.44:22     0.0.0.0:*        LISTEN  9839/sshd
tcp         0       0  192.168.1.1:22     0.0.0.0:*        LISTEN  9839/sshd
[root@siva ssh]#

Tar 指令詳解

備份程式:tar Function Options tarFiles [SomeFile?] SourceFiles?
將許多檔案包裝成一個檔案,並保留檔案權限、目錄結構、完整的符號連結和實體連結等相關訊息。
而在解開檔案時,會將原本時的目錄解開在目前的目錄底下。若要只解開部份檔案時,必須要加上在備份檔中該檔案的完整路徑。
一般的做法是:先將許多檔案用 tar 打包成一個檔案,再用 gzip 壓縮成FileName?.tar.gz。
如果將 tar Files 以 - 代替,表示輸出入至標準輸出入。如:
tar cvf -SourceFiles?| gzip -9 > tarFile.tar.gz
gunzip -9ctarFile.tar.gz| tar xvf -
Function:
c : 建立新的備份檔。
x : 將備份檔解開。
t : 列出備份檔的內容。
-T Sample : 備份在 Sample 中所列出的檔案清單。
r : 將檔案附加在這個備份檔案的後面。
u : 將備份檔內的檔案以更新的檔案取代。
d : 比較備份檔中的檔案和檔案系統中的檔案。
Options:
v : 列出處理檔案時的相關訊息。越多訊息越詳細。
k : 解開檔案時不要覆蓋已存在的檔案。
f FileName? : 指定備份檔的檔案名稱。
z : 和 gunzip 搭配使用,自動產生或解開壓縮後的備份檔。
j : 和 bzip2 搭配使用,自動產生或解開壓縮後的備份檔。
複製完整子目錄到另一個目錄中:
cd SourceDirectiory?
tar cf - . | (cd TargetDirectory?; tar xvf -)
備份一個子目錄:tar cvfBackup.tar /Direcory
分片備份:tar cvfMBackup.tar /Direcory

=====================================================================


1 tar

tar (tape archive) 原本是設計用來將文件打包到磁帶中的,我們也可以將檔案或是目錄打包成一個單一的檔案,必要時再用同一個程式來將資料全部還原或是只解開部份的資料,正因為它可以備份檔案或目錄,深受大家的愛用。
常用參數:
  • 指定動作 :
    • -c create,新增一個備份檔
    • -t list,顯示備份檔中的檔案清單
    • -x extract,解開備份檔中的檔案
  • 指定檔案:
    • -f file,讀/寫指定的檔案

       
  • 壓縮方式:
    • -z gzip,備份的東西要用 gzip 壓縮/解壓縮
    • -y bzip,備份的東西要用 bzip 壓縮/解壓縮,也可以用 -j
  • 其它:
    • -p permissions,保留原來的權限
    • -v verbose,備份的內容要顯示在畫面
    • -C (大寫 C),cd 先切換目錄
由於 tar 的功能非常的多,指令可用的選項令人眼花瞭亂,下面只示範最常用的,有興趣再自己用 man tar 好好的研究囉!

1-1 以 tar 打包要備份的資料

如果沒有什麼特殊需求,利用 tar 備份檔案只要用到 -c (新增) ,-p (保留權限設定),-f (指定檔名),頂多再加個 -v 看一下打包的過程。
例如:
tar -cpvf /home/backup/etc.tar /etc
上例將 /etc 目錄中所有的檔案打包到 /home/backup/etc.tar 中。
也可以同時備份多個目錄,將要打包的清單(以空白分隔)接在最後面即可。下面的例子將 /etc , /usr/local/etc 打包在 etc.tar 中:
tar -cpvf /home/backup/etc.tar /etc /usr/local/etc
我們也可以使用:
tar -czpvf /home/backup/etc.tgz /etc
和前面的例子比較,多了個參數 z ,也就是將 tar 打包完的檔案再利用 gzip 壓縮,所以新產生有經過壓縮處理的備份檔我們也將檔名命名為 etc.tgz (.tgz 結尾),也有人用 .tar.gz ,端看個人習慣。
咦~好奇的人可能會想到 FreeBSD 的 packages 檔名好像叫 *.tgz 或 *.tbz,和 tar , gzip , bzip 有沒有關啊?有興趣可以找個 FreeBSD 的 package ,用 tar 來打開包裝看看哦!!
另外,比較一下這兩個同樣是備份 /usr/local/etc 的指令有何不同?
tar -czvf /home/backup/local.etc.1.tgz /usr/local/etc
tar -czvf /home/backup/local.etc.2.tgz -C /usr/local etc
由於 tar 預設在備份時會儲存檔案的路徑 (但是自動去掉開頭的第一個斜線) ,也就是 /usr/local/etc/rc.d 在 local.etc.1.tgz 中會變成 usr/local/etc/rc.d,如果我們連 usr/local 都不想要,打包時可以利用 -C (大寫字母) 這個參數來控制路徑的保留層次,像前面第二個例子加了 -C /usr/local ,tar 會先切換至 /usr/local 目錄才備份 etc,所以在 local.etc.2.tgz 中 /usr/local/etc/rc.d 變成 etc/rc.d 儲存起來。

1-2 查看 tar 打包的檔案

要查看以 tar 打包的檔案只要利用 -t 這個動作參數即可。
例如:
tar -tvf /home/backup/etc.tar
上例會將 /home/backup/etc.tar 中的檔案清單顯示出來。
如果備份時有用 gzip 壓縮過則可以加上 -z
tar -tzvf /home/backup/etc.tgz
如果備份時用 bzip 壓縮過則加上 -y 或是 -j
tar -tyvf /home/backup/etc.tbz

1-3 解開 tar 打包的檔案

要解開 tar 封裝的檔案是利用 -x 這個動作參數,再搭配 -z , -y (-j) 解壓縮。如果想保留原來的權限設定則要記得使用 -p,至於要不要使用 -C (大寫字母) 則要看當初在打包時有沒有使用及自己想要放置的路徑而定,最容易犯的毛病大多是解錯路徑,所以在使用 -x 解開時一定要記得先用 -t 查看一下當初是怎麼打包的,最保險的方法是先解到一個暫存的地方,再將需要的檔案複製/搬移到目的地。
將 /home/backup/etc.tgz 中的東西在目前所在的目錄解開:
tar -xzvf /home/backup/etc.tgz
將 /home/backup/etc.tgz 中的東西在 /home 中解開:
tar -xzvf /home/backup/etc.tgz -C /home
將 /home/backup/etc.tgz 中的東西在 /home 中解開,並保留原始的權限:
tar -xzpvf /home/backup/etc.tgz -C /home

1-4 只解開 tar 打包的部份檔案

只解出 /home/backup/etc.tgz 中的 etc/group , etc/master.passwd 兩個檔案:
tar -xzvf /home/backup/etc.tgz etc/group etc/master.passwd
將 /home/backup/etc.tgz 中凡是叫 etc/rc* 通通解開,其它的不要:
tar -xzvf /home/backup/etc.tgz 'etc/rc*'
將 /home/backup/etc.tgz 中的檔案解開,但是 rc.d 目錄中的東西不要:
tar -xzvf /home/backup/etc.tgz --exclude='rc.d/*'
以上提到的方法也可以應用在打包時 (-c) 及查看清單時 (-t) 。

1-5 利用 tar 直接複製整個目錄到另一個目錄中

利用 tar 和 pipe 的技巧,可以做整個目錄直接複製,不過這個方法並不保證完整哦,畢竟它的方式不若 dump + restore 完備。
假設我想把 /usr 中所有的東西複製到 /mnt/usr 中,就執行底下的指令:
tar cf - /usr | (cd /mnt ; tar xvfBp -)


2 dump 及 restore

前面提過的 tar 可以針對目錄或檔案來備份,而 dump 則是以 block 為處理單位,針對整個檔案系統(分割區)來備份,可以更完整的保持系統的原貌不會有所缺漏,以 dump 備份的資料可以用 restore 再還原回來。

2-1 以 dump 將整個 partition 備份至一個檔案

使用過 Norton ghost 的人應該知道裡面有個選項是將 MS Windows 或 Linux 系統的某個分割備份到映像檔中,下面則是利用 dump 做類似的動作,將某個分割區備份至一個檔案。
假設 /home 是一個單獨的分割區 (/dev/ad0s1h),而 /backup 是一個空間夠大的目錄,我們可以執行:
# dump -0uaf /backup/home.dump /home
上面的例子以 level 0 將 /home 所在的分割區備份至 /backup/home.dump 中。
參數說明:
  • -0 以 level 0 備份,也就是完整備份,level 可以為 0~9,level 1 則只備份 level 0 後有異動的部份。
  • -u update,備份完成後自動更新 /etc/dumpdates 的內容(記錄分割區代號、level、備份日期)。
  • -a auto-size,略過可儲存空間大小的檢查。
  • -f file,將備份的資料輸出到後面參數指定的檔案,也可以是一個硬體(device file)或是標準輸出 (-)。

2-2 以 restore 還原檔案

以 dump 備份的分割區我們可以用 restore 將檔案還原出來,就像利用 ghost 把映像檔再寫入 partition 一樣,不過 restore 也可以只解出部份檔案。不過在使用 restore 要注意的是,restore 並不會幫我們將 partition 做格式式,而且,它是將內容解在目前所在的目錄,所以要記得先做好格式化並切換到要還原的目錄。
例如想把 /home dump 完的備份 ( /backup/home.dump ) 還原到 /mnt/new (/dev/ad1s1e) 這個 partition 中,如果 /dev/ad1s1e 已經格式化好,而且已經 mount 到 /mnt/new ,就可以執行以下指令:
# cd /mnt/new
# restore -rf /backup/home.dump
完成後,/mnt/new 就可以看到原來 /home 的中的資料。
如果只想還原備份中的部份檔案怎麼辦呢?
restore 提供 -i 的參數來進行交談式的還原,我們可以利用這個方法來指定要還原的部份,例如,只想由 /home 的備份檔 home.dump 中還原 /home/gsyan , /home/students 的資料,我們可以執行:
# restore -if /backup/home.dump
出現 restore > 的提示符號後,我們就可以下指令,例如:輸入問號 (?) 即可列出可用的指令
restore > ?
Available commands are:
ls [arg] - list directory
cd arg - change directory
pwd - print current directory
add [arg] - add `arg' to list of files to be extracted
delete [arg] - delete `arg' from list of files to be extracted
extract - extract requested files
setmodes - set modes of requested directories
quit - immediately exit program
what - list dump header information
verbose - toggle verbose flag (useful with ``ls'')
help or `?' - print this list
If no `arg' is supplied, the current directory is used

 
為了達到範例的目標,我們要用 add 來新增要還原的檔案清單,用 extract 執行還原,下面是還原出 /home/gsyan 及 /home/studens 至目前分割區的步驟,黑體字的部份是自行輸入的部份:
restore > add gsyan students
restore > extract
You have not read any tapes yet.
If you are extracting just a few files, start with the last volume
and work towards the first; restore can quickly skip tapes that
have no further files to extract. Otherwise, begin with volume 1.
Specify next volume #: 1
set owner/mode for '.'? [yn] y
restore >
 
要結束只要輸入 quit 按 Enter 鍵即可跳出 restore 。

2-3 以 dump 及 restore 做 partition 對 partition 的對拷

將分割區 dump 給標準輸出,再讓 restore 由標準輸入還原在新的 partition 就能達到 partition 對 partition 對拷的目的,底下是進行對拷的流程:
    1. 切好新的 partition
    2. 以 newfs 將 partition format 好
    3. 將新的 partition mount 好
    4. 切換至新的 partition 中
    5. 以 dump & restore 進行備份及還原
※ 1-2 的步驟可以執行 /stand/sysinstall ,然後選取 Configure 利用裡面的 Fdisk 和 Label 進行分割及格式化
例如:想要將 /home (/dev/ad0s1h) 上的所有資料備份到新硬碟上的 partition (/dev/ad2s1h),執行
# newfs /dev/ad2s1h (如果已經格式化過則可省略)
# mount /dev/ad2s1h /mnt (如果已經 mount 好則可省略)
# cd /mnt
# dump -0uaf - /home | restore -rf -
# cd /
# umount /mnt
特別注意 dump 及 restore 並沒有指定檔名,而都用了一個減號 ( - ),對 dump 來說,是將 partition 的資料一個 block 一個 block 的送向標準輸出,而 restore 則是由標準輸入讀入並還原。

2-4 以 dump & restore 備份整顆硬碟

如果想將整顆硬碟的資料拷至另一顆新硬碟,以最笨的方法就是先用 /stand/sysinstall 將新硬碟切割好,再利用 dump & restore 把各 partitions 一一對拷即可,程序如下:
  1. 將新硬碟接好後,以重新開機。

     
  2. 執行 /stand/sysintall
    • 選取 Configure
    • 選取 Fdisk 切給 FreeBSD 用的 partions
    • 選取 Label 進入 Disklabel Editor
    • 注意:在設定 disklabel 時 mount point 要先照原來的架構設定
    • 在存檔前先移到各 partition 後按 M 修改 mount point 至 /mnt 下的暫存目錄,不然可能會有錯誤
    • 按 W 存檔並開始 format New H.D. (newfs)

       
  3. 離開 sysinstall

     
  4. umount -A 解除所有 mount 上來的 filesystem

     
  5. mount -a 重新掛上系統預設的 filesystem

     
  6. 開始備份各 partition

     
  7. 將新硬碟的 / (例如:/dev/da1s1a) 掛上來

    mount /dev/da1s1a /mnt
  8. 將新硬碟 /etc/fstab 中的 /dev/xxx 改成合適的

    ee /mnt/etc/fstab

2-5 dump + ssh 進行異地備份

dump 和 restore 其實有相對應的 rdump 和 rrestore 可進行遠端的備份及還原,不過 r 系統的指令的安全性較需考量,我們可以利用 ssh 來進行較安全的連線。
假設現在想把名為 mail 上掛在 /home 的這個 partition 異地備份至名為 bkserver 主機上的 /backup 目錄 ,我們可以進行以下程序來備份。
  • 準備工作
    • 在 bkserver 上準備一個備份登入用的專用帳號,假設就叫 bk 好了!!
    • 檢查 bkserver 備份專用的目錄 /backup 是否可被備份專用帳號 ( bk ) 寫入。
    • 在 mail 上因為要執行 dump 必須是 root ,所以屆時必須由 root 執行 ssh 遠端登入 bkserver,所以要為 mail 上 root 以 ssh-keygen 準備登入用的 "公開金鑰" 。
    • 將 root@mail 的公開金鑰置入 bkserver 上帳號 (bk) HOME 的 .ssh/authorized_keys 中。
  • 進行備份
準備工作中比較麻煩的部份應該遠端登入用的金鑰,製作流程如下:

2-5-1 連線測試

我們先在 mail 上以 root 的身份登入 mail,然後遠端登入 bkserver (假設在 bkserver 上已經建好 bk 這個帳號)
# ssh bk@bkserver
如果是第一次連線,應該會出現下面的問題詢問是否儲存遠端主機的識別資料,類似下面:
The authenticity of host 'bkserver.test.edu.tw (192.168.1.5)' can't be established.
DSA key fingerprint is 2b:cc:89:80:bc:77:45:83:47:ae:b6:29:51:f5:15:33.
Are you sure you want to continue connecting (yes/no)?
輸入 yes 即可,ssh 會將資料存入 ~/.ssh/know_hosts ,下次就不會有同樣的問題。
接著輸入 bk 的登入密碼,如果成功登入就完成連線測試,輸入 exit 登出,準備進行登入用金鑰的製作。

2-5-2 製作金鑰

我們希望在進行遠端備份能夠不用輸入密碼自動登入遠端主機執行備份儲存的工作,所以要先在 mail 上用 ssh-keygen 來產生 ssh 登入用的金鑰對。
先確認已經在本機 ( mail ) 上用執行 dump 指令的 root 帳號登入哦!然後由 root 執行:
ssh-keygen -d
接著應該會出現以下的對話:
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
a6:62:05:95:92:79:2a:71:2d:73:3b:7d:0e:e7:39:26 root@mail.test.edu.tw
如果希望登入時不用輸入密碼直接登入,只要通通按 Enter 回所有問題即可。
執行完會在 /root/.ssh 中產生 id_dsa 和 id_dsa.pub ,後面那個就是我們要放在 bkserver 裡 bk 帳號下的金鑰。
接著我們要把 /root/.ssh/id_dsa.pub 複製到遠端主機 (bkserver) 裡備份專用帳號 (bk) 個人目錄的.ssh/authorized_keys 中。
如果 bkserver 的 ~bk/.ssh/authorized_keys 不存在,我們直接把前面在 mail 上 root 帳號產生的 id_dsa.pub 上傳過去即可,在 mail 上以 root 執行:
scp ~/.ssh/id_dsa.pub bk@bkserver:.ssh/authorized_keys
不過要記得先幫 bk 建好 .ssh 的目錄哦!不然會發生錯誤。
如果 authorized_keys 早已存在,我們可以先將 id_dsa.pub 傳到 bkserver 上,然後再將 id_dsa.pub 中的內容貼到 ~bk/.ssh/authorized_keys 新的一行。
如果前面的步驟完成了,我們在 mail 以 root 執行 ssh bk@bkserver 應該就可以不用輸入密碼遠端登入囉!

2-5-3 遠端備份

做好前面的準備工作後,我們就可以在 mail 上將某個 partition 備份到位於遠端的 bkserver 上了。
例如:
# dump -0uaf - /home | ssh -c blowfish bk@bkserver dd of=/backup/mail.home.dump
上面的例子在 mail 上執行,將掛在 mail /home 的 partition 備份起來,並以 bk 帳號遠端登入 bkserver 儲存在 bkserver 的 /backup/mail.home.dump 裡。
如果想省一些空間則可以順便用 gzip 壓縮後再傳給 bkserver,指令改為:
# dump -0uaf - /home | gzip -2 | ssh -c blowfish bk@bkserver \
dd of=/backup/mail.home.dump

2012年2月1日 星期三

CentOS 5 MySQL 設定檔 - my.cnf 的位置

在CentOS以yum安裝MySQL後,
設定檔範例會放在:
1. CentOS 5.x: /usr/share/mysql
2. CentOS 4.x: /usr/share/doc/mysql-server-4.1.27 (最後一層目錄名稱依MySQL版本會有所不同)
會有根據主機記憶體大小不同有各個合適的範本可以使用:
my-huge.cnf
my-innodb-heavy-4G.cnf
my-large.cnf
my-medium.cnf
my-small.cnf

2012年1月30日 星期一

php與mysql降級過程

php與mysql降級過程:

 
1.移除php-->yum remove php

2.移除mysql-->yum remove mysql

3.移除被remi更新的相關套件-->yum remove *remi

4.檢查有無之前更新的remi安裝的套件(rpm -qa|grep remi),若有記得利用(yum remove *remi)移除,或是用(rpm -e)手動移除。

5.移除epel與remi:
yum remove epel-release-5-3  -->  會將相關套件 remi-release-5-7 一起移除。

6.利用yum install 裝回php與mysql
yum install php
yum install mysql

7.檢查設定檔與相關的套件

8.重新啟動Apache與mysql

2012年1月29日 星期日

【CentOS】lighttpd php mysql-LAMP 架設

【CentOS】lighttpd php mysql-LAMP 架設

來源:http://www.centerbbs.com/redirect.php?tid=25680&goto=lastpost


【前言】

[LAMP - Wikipedia] 應該不用多說了吧,不過本次實作 Web Server 不是使用 Apache,而是使用小而輕巧的 Lighttpd-輕量級 Web Server,不知是不是應該改叫 LLMP (Linux Lighttpd MySQL PHP) :p

【作業環境】

CentOS 5.1 (Linux 2.6.18-53.1.4.el5)

mysql-server-5.0.22-2.2.el5_1.1

lighttpd-1.4.18-1.el5.rf

php-5.1.6-15.el5

php-mysql-5.1.6-15.el5

【安裝及設定】

MySQL

Step1.安裝 MySQL Database

我使用郡組安裝把相關會用到的套件都裝入,在安裝以前先查看會安裝哪些套件
複製內容到剪貼板
代碼:
#yum groupinfo "MySQL Database"            //查尋 MySQL 郡組套件會安裝哪些套件
Group: MySQL Database
  Description: This package group contains packages useful for use with MySQL.
  Mandatory Packages:                       //強制安裝套件
    mysql
  Default Packages:                         //預?#93;會安裝的套件
    unixODBC
    mysql-server
    MySQL-python
    mysql-connector-odbc
    libdbi-dbd-mysql
    perl-DBD-MySQL
  Optional Packages:                        //建議安裝 (視個人需求自行安裝)
    mod_auth_mysql
    mysql-devel                             //MySQL ?#123;式?#125;發套件及函式庫
    qt-MySQL
    mysql-bench                             //MySQL 效能測試套件
    php-mysql
接下來就利用 yum 來進行郡組安裝 MySQL 吧
複製內容到剪貼板
代碼:
#yum groupinstall "MySQL Database"
你可能會問說怎麼沒有 MySQL-shared (MySQL 用戶端函式庫套件),這個套件若需要就到[MySQL Download]找對應的 MySQL 版本及需要的 rpm 來安裝吧。

Step2.修改 /etc/my.cnf

我想將 DB 放置資料夾從預設的 /var/lib/mysql 改放到 /home/db/mysql 下,我喜歡集中管理 :p
複製內容到剪貼板
代碼:
#mkdir /home/db ; mkdir /home/db/mysql
#chown mysql:mysql /home/db/mysql
#vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql                //預?#93;值
datadir=/home/db/mysql                //修改後
再來就是執行 chkconfig 將 mysqld 設定在 runlevel 2 ~ 5 為啟動 MySQL 服務
複製內容到剪貼板
代碼:
#chkconfig mysqld on
#chkconfig --list |grep mysqld        //查看?#93;定是否生效
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
Step3.啟動 MySQL
複製內容到剪貼板
代碼:
#/etc/rc.d/init.d/mysqld start        //啟動 MySQL 服務
Initializing MySQL database:  Installing all prepared tables Fill help tables
Starting MySQL:                                            [  OK  ]
檢查 MySQL 是否啟動成功並 Listen 相關 Port
複製內容到剪貼板
代碼:
#netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
Step4.設定 MySQL 管理者密碼

剛安裝完 MySQL 後記得趕快設定管理者密碼 (這裡的 root 跟 CentOS 的 SuperUser Root 沒關系哦!!)
複製內容到剪貼板
代碼:
#mysqladmin -u root password YOUR_PASSWORD     //?#93;定新密碼
#mysqladmin -u root -p password NEW_PASSWORD   //日後若要更改密碼
Step5.測試登入 MySQL

設定好 MySQL 管理者密碼後試著登入看看吧:p
複製內容到剪貼板
代碼:
#mysql -u root -p
Enter password:                                //輸入剛才?#93;定的 MySQL 密碼
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1581 to server version: 5.0.27
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>                                         //成功登入 mysql
Step6.建立其它 MySQL 帳號

以下命令為表示允許連線主機來源是 localhost 以 sqluser1 的 MySQL 帳號及密碼為 1234 登入的使用者,能對指定的資料庫 testdb 擁有所有權限。
複製內容到剪貼板
代碼:
mysql> grant all privileges on testdb.* to sqluser1@localhost IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES ;             //重新載入(使變更生效)
Query OK, 0 rows affected (0.01 sec)
Lighttpd

Step1.安裝 lighttpd、lighttpd-fastcgi 套件

因為 Lighttpd 使用 FastCGI 來處理 PHP 所以要一併安裝
複製內容到剪貼板
代碼:
#yum -y install lighttpd lighttpd-fastcgi
Step2.修改 lighttpd 設定檔

修改 lighttpd 設定檔來支援 PHP (FastCGI)
複製內容到剪貼板
代碼:
#vim /etc/lighttpd/lighttpd.conf
server.modules = (
                   "mod_fastcgi",   //這行的 mark 要拿掉(支援 PHP-FastCGI)
                  )
#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/var/run/lighttpd/php-fastcgi.socket",     //預?#93;值
                                   "socket" => "/tmp/php-fastcgi.socket",                  //修改後
                                   "bin-path" => "/usr/bin/php-cgi"
                                 )
                               )
                              )
Step3.設定開機自動啟動 lighttpd 服務

使用 chkconfig 指令來查看 lighttpd 在各 runlevel 下狀態
複製內容到剪貼板
代碼:

#chkconfig --list |grep lighttpd
lighttpd        0:off   1:off   2:off   3:off   4:off   5:off   6:off  
設定 lighttpd 在 runlevel 為 2、3、5 時會啟動服務
複製內容到剪貼板
代碼:

#chkconfig --levels 235 lighttpd on      
檢查剛才的設定是否生效
複製內容到剪貼板
代碼:

#chkconfig --list |grep lighttpd
lighttpd        0:off   1:off   2:on    3:on    4:off   5:on    6:off  
Step4.啟動 lighttpd 服務
複製內容到剪貼板
代碼:

#/etc/rc.d/init.d/lighttpd start
Starting lighttpd:                                         [  OK  ]  
檢查一下 lighttpd process 是否執行
複製內容到剪貼板
代碼:
#ps ax |grep lighttpd
4266 ?        S      0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
檢查是否 LISTEN Port 80
複製內容到剪貼板
代碼:
#netstat -tnl |grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN
PHP

Step1.安裝 PHP 5

安裝 php 及 php-mysql 套件
複製內容到剪貼板
代碼:
#yum -y install php php-mysql
Step2.查尋安裝 PHP 是否成功

查看安裝的 PHP 版本
複製內容到剪貼板
代碼:
#php -v
PHP 5.1.6 (cli) (built: Sep 20 2007 10:16:10)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
查看目前 PHP 模組
複製內容到剪貼板
代碼:
#php -m
[PHP Modules]
bz2
...略
xml
zlib
[Zend Modules]
Step3.測試 Lighttpd 能否正確處理 php 檔案

隨意建立一個檔名為 test.php 的檔案,然後放到 lighttpd 的 web 目錄而 test.php 內容如下如果能看到 php 的預設頁就表示 lighttpd 能正確處理 php 檔案了
複製內容到剪貼板
代碼:
phpinfo>  
【參考】

[學生用伺服器建置流程(CentOS 5 版)PHP & MySQL]

[台灣PHP聯盟 - 在 RHEL 修改 mysql 放置資料的路徑]

[Jamyy's Weblog: 架設自己的即時訊息伺服器 - 使用 jabberd 2]

【Log】

2011年11月9日 星期三

centos log設定

syslog 與 logrotate

請特別注意,我們的 Apache 登錄檔主要記錄兩個東西,分別是:
  • /var/log/httpd/access_log :用戶端正常要求的記錄資訊
  • /var/log/httpd/error_log :使用者錯誤要求的資料,包括伺服器設定錯誤的資訊等。
那個 /var/log/httpd/error_log 可以讓你處理很多設定錯誤的情況,包括網頁找不到、 檔案權限設定錯誤、密碼檔案檔名填錯等等。至於 access_log 則可以讓你分析那個網頁最熱門! ^_^! 不過你可得注意的是:『在稍有規模的網站下,Apache 的登錄檔每週記錄量甚至可達 1GB 以上』的紀錄。以鳥哥的主網站來說,一個星期逼近 1GB 的登錄檔是合理的...
不過,因為登錄檔是純文字資訊,所以如果能夠給予壓縮的話,那麼備份下來的登錄檔將可以減少到數十MB而已, 這樣可大大的減少了磁碟空間的浪費啊!如果你是使用預設的 Apache 來處理你的伺服器時, 那麼系統已經作了一個 logrotate 給你使用了,如果你是使用 Tarball 自己安裝的, 那麼...你就得要自行手動建立底下這個檔案啦!鳥哥底下是以 CentOS 6.x 提供的檔案來作說明的:
[root@www ~]# vim /etc/logrotate.d/httpd
/var/log/httpd/*log {
    missingok
    notifempty
    compress   <==建議加上這一段,讓你的備份登錄檔可以被壓縮
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}
為什麼這裡很重要呢?鳥哥的伺服器曾經發生過一件事情,就是....突然 WWW 效能變很差! 後來追蹤的原因竟然是... /var/ 的容量被用完了!而耗掉這個 partition 的元兇竟然是 Apache 的登錄檔! 當時 /var/ 僅給 5GB ,而每個星期的登錄檔就上達 1GB 以上,備份四個星期的結果, /var/ 想不爆掉也很難~ 所以啦,建議你的 /var 要給個 10GB 以上才好吶!而且備份登錄檔也要壓縮才好吶!
資料來源:http://linux.vbird.org/linux_server/0360apache.php#other_pkg_syslog

2011年6月14日 星期二

自動在列和欄產生序號

在 Excel 中如果要在多列中產生序號(1,2,3,…),可以透過ROW函數。
(1) =ROW(A1)
(2) =ROW(1:1)
(3) =ROW()
不管那一列中輸入(1)和(2)這二個公式,當往下複製時,都會自動產生1,2,3, … 的數列。如果改變參數A1為B1,C1,…,或是改變參數1:1為2:2,3:3,…,都可以改變數列的起始數值。而ROW()則以儲存格的位址當為參數,若位於第6列,則會傳回6。
參考下圖,如果你將某一列(例如:第10列)刪除,其數列結果不會受到影響。
但是要注意,如果是用在公式中的運算時,例如:儲存格D5:=A13+2
當第13列被刪除時,該公式會產生#REF!錯誤訊息。




如果你要在各欄中產生數列,則可以使用以下公式:
(1) =COLUMN(A1)
(2) =COLUMN(A:A)
(3) =COLUMN()
不管那一欄中輸入(1)和(2)這二個公式,當往右複製時,都會自動產生1,2,3, … 的數列。如果改變參數A1為B1,C1,…,或是改變參數A:A為B:B,C:C,…,都可以改變數列的起始數值。而ROW()則以儲存格的位址當為參數,若位於F欄,則會傳回6。