Archive for the ‘System/Linux/Unix*’ Category.
Ubuntu Linux : install .deb packages
sudo dpkg -i package_name
linux mount iso image / create iso image
mount -o loop -t iso9660 iso_file mount_point
genisoimage – create ISO9660/Joliet/HFS filesystem
genisoimage [options] [-o filename] pathspec [pathspec ...]
[monster] monster.tw 記錄 / memo / ubuntu / 裝 圖形介面 / GUI / gnome desktop / ip address / setting
昨天晚上去一位朋友公司幫忙用他們的 server , 回來就想要做幾件事:
1. 記錄一下自己的 server 某些重要檔案, 也可供其他人參考
2. 備份重要 file
3. 隨時準備好最新版的救援CD/Live CD/Live USB , 最新版的 Monster LAMP pack 也要燒好收著.
4. 準備一個 “萬用” 含各類 driver 的 linux kernel , 以供救援使用.
5. 搞懂 booting steps / GRUB setting
root@park:~# cat /etc/fstab
# /etc/fstab: static file system information. # # Use 'vol_id --uuid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=46312252-8925-4e60-ab5f-af240b4b440f / ext3 relatime,errors=remount-ro 0 1 # swap was on /dev/sda5 during installation UUID=bf9a64f1-3eb8-433c-8311-8d971be82dc2 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
service / daemon 管理工具
sysv-rc-conf text based utility :
sudo apt-get install sysv-rc-conf
另一套 GUI
sudo apt-get install gnome-system-tools
monster.tw 是裝這個 apt-get install rcconf
列出 runlevels 的 program : chkconfig
裝 圖形介面 / GUI / gnome desktop
sudo apt-get install ubuntu-desktop --no-install-recommends
啟動 desktop manager :
/etc/init.d/gdm start
stop x server / 關掉 x window: /etc/init.d/gdm stop
改 IP address
cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 172.30.0.42
netmask 255.255.255.0
network 172.30.0.0
broadcast 172.30.0.255
gateway 172.30.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 8.8.8.8
dns-search monster.tw
重新啟動 networking
/etc/init.d/networking restart
若要使用 DHCP 的話
auto eth0 iface eth0 inet dhcp
加上 default route
gateway 1.2.3.4
或另一個 static route
up route add -net 1.2.3.0 netmask 255.255.255.0 gw 1.2.3.4
change host name:
改 /etc/hostname 改 /etc/hosts 若是用 vmware 之類的軟體導致 clone 出來的 ubuntu 網路 interface 跑掉, 可以砍掉 /etc/udev/rules.d/70-persistent-net.rules 後 reboot , 就可以解決了.
debian / ubuntu 裝 memcached 跟 pecl memcache
裝 memcached :
apt-get install memcached
/etc/default/memcached 裡面設 yes –> 啟用 設定檔 /etc/memcached.conf
裝 php5 的 memcache extension
apt-get install php5-memcache
會產生 /etc/php5/conf.d/memcache.ini 內容是
extension=memcache.so [memcache] memcache.dbpath="/var/lib/memcache" memcache.maxreclevel=0 memcache.maxfiles=0 memcache.archivememlim=0 memcache.maxfilesize=0 memcache.maxratio=0
—– 以下是舊的方法, 2010.0630 前
裝 pecl memcache
aptitude install libevent-dev
因為 pecl 要用到 phpize , 所以要裝 php5-dev 套件
apt-get install php5-dev apt-get install php-pear pecl install memcache
裝好了, 要在 /etc/php5/conf.d 設一個檔 memcache.ini
cat > /etc/php5/conf.d/memcache.ini extension=memcache.so
Google 提供 Public 的 DNS , IP 是 8.8.8.8 帥氣又好記!
URL: http://code.google.com/speed/public-dns/
有 unix server 的人 /etc/resolv.conf 可以設它
nameserver 8.8.8.8
windows 使用者也可看這篇說明來設定
http://code.google.com/speed/public-dns/docs/using.html
好處是
Why should you try Google Public DNS?
By using Google Public DNS you can:
* Speed up your browsing experience.
* Improve your security.
* Get the results you expect with absolutely no redirection.
ssh 免輸入 password 登入的方式
先寫起來免得又忘記了…
想要由 hostA ssh到 hostB
先在 hostA 下 ssh-keygen -t dsa
會產生 id_dsa , id_dsa.pub 在 home diectory 的 .ssh 目錄下
把這個 id_dsa.pub "APPEND" 到 hostB 的 .ssh/authorized_keys 檔案中
這樣就 ok 了
install oracle 11g steps
記錄一下, 方便查詢
ORACLE URL : Installing Oracle Database 11g Release 1 on Enterprise Linux 5 (32- and 64-bit)
- http://www.oracle.com/technology/pub/articles/smiley-11gr1-install.html?rssid=rss_otn_articles
ORACLE wiki : http://wiki.oracle.com/
step-by-step screenshots : http://www.thegeekstuff.com/2008/10/oracle-11g-step-by-step-installation-guide-with-screenshots/
Install Oracle 11g on CentOS with VMware ( Mac )
- http://wiki.oracle.com/page/Installing+Oracle+11g+on+CentOS+under+VMWare+on+a+Macbook
Oracle 11g R1 Enterprise安裝研究(CentOS 5.2) : http://forum.icst.org.tw/phpbb/viewtopic.php?f=21&t=16411&start=0&sid=866700eee479d130d126967c3160e7f4
Oracle 11g R2 Enterprise (CentOS 5.3 x86_64) 安裝筆記 : http://hans0713.blogspot.com/2009/10/oracle-11g-r2-enterprise-centos-53.html
Oracle 9i Streams 安裝步驟 – http://www.oracle-base.com/articles/9i/Streams9i.php
Oracle 11g Release 2 RAC On Linux Using VMware Server 2 -
http://www.oracle-base.com/articles/11g/OracleDB11gR2RACInstallationOnOEL5UsingVMwareServer2.php
筆記一下網上看到的:
Linux OS 下這些調整 sysctl
fs.file-max = 65535 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 1024 65535 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 262144
Get MAC address using C
不過 , 這邊有指定 eth0 , 若 server 有很多 interface 的話就要注意一下了.
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
int main( int argc, char *argv[] )
{
int s;
struct ifreq buffer;
s = socket(PF_INET, SOCK_DGRAM, 0);
memset(&buffer, 0x00, sizeof(buffer));
strcpy(buffer.ifr_name, "eth0");
ioctl(s, SIOCGIFHWADDR, &buffer);
close(s);
for( s = 0; s < 6; s++ )
{
printf("%.2X ", (unsigned char)buffer.ifr_hwaddr.sa_data[s]);
}
printf("\n");
return 0;
}
programmer … 超好用的 online tools – URL Encode/URL Decode/base64 encode/base64 decode/UUencode/UUdecode
URL Encode/Decode : http://netzreport.googlepages.com/online_tool_for_url_en_decoding.html
base64 encode/decode : http://www.rbl.jp/base64.php
base64 encode/decode : http://www.motobit.com/util/base64-decoder-encoder.asp
UUencode/decode : http://www.webutils.pl/UUencode
改 gnu screen "窗" 的數量
原本沒改的話是 40 個 , 改那個 config.h 或是 config.h.in
/*
* Maximum of simultaneously allowed windows per screen session.
*/
#define MAXWIN 100
我的 DD-WRT site to site VPN setting
squid proxy server setting
改這個檔 /etc/squid/squid.conf
allow 內網可以透過 proxy
就放在那個 INSERT YOUR ….
acl officenet src 172.30.0.0/24 http_access allow officenet
兩套 Free firewall / NAT / VPN server
比較推薦:
http://www.pfsense.com/
另一套:
http://m0n0.ch/wall/
m0n0wall is probably the first UNIX system that has its boot-time configuration done with PHP, rather than the usual shell scripts, and that has the entire system configuration stored in XML format.
—> 可以看一下他怎麼寫這個的 “boot-time configuration”
debian / ubuntu , APT HOWTO / Guide / 指令速查表
1. Searching for packages apt-cache
sudo apt-cache search package1
2. Getting more Information about a package apt-cache
sudo apt-cache show package1 package2 …
3. Installing a package apt-get install
sudo apt-get install package1 package2 …
sudo apt-get install package1 –reinstall
4. Removing packages apt-get remove
sudo apt-get remove package1 package2
complete remove:
sudo apt-get remove package1 package2 –purge
5. Update your package database apt-get update
sudo apt-get update
6. Upgrading your system apt-get [dist-]upgrade
sudo apt-get upgrade
The smart upgrade with:
sudo apt-get dist-upgrade
7. Resolving conflicts and Broken packages apt-get
sudo apt-get -f install
8. Checking for dependencies and reverse dependencies apt-cache
apt-cache depends package1 package2
apt-cache rdepends package1 package2
debian / ubuntu 裝 oracle instant client / sqlplus / oci8 / apache2 config / steps by steps
2011.0530 整理的 install step by step:
OS : uname -a
Linux ubuntu 2.6.38-8-server #42-Ubuntu SMP Mon Apr 11 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Oracle client : 11.2 R1
google "oracle instant client download"
到 oracle 網頁找 Instant Client for Linux x86-64 / Version 11.2.0.1.0 (PS: Version 11.2.0.2.0 這版有問題)
download 這兩個
oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm (47,811,007 bytes)
oracle-instantclient11.2-devel-11.2.0.1.0-1.x86_64.rpm (606,343 bytes)
用 alien 裝起來
102 alien -i *basic*
103 alien -i *devel*
新增這個檔 /etc/ld.so.conf.d/oracle.conf , 內容:
/usr/lib/oracle/11.2/client64/lib/
104 cat /etc/ld.so.conf.d/oracle.conf
105 ls -l /usr/lib/oracle/
106 ls -l /usr/lib/oracle/11.2/client64/lib/
安裝 LAMP :
108 export http_proxy="http://172.30.1.123:8080"
109 apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql
安裝 libaio 套件
138 apt-get install libaio1
安裝 pear 套件
112 apt-get install php-pear
安裝 pecl 的 oci8 套件
pear config-set http_proxy http://172.30.1.123:8080/
114 pecl update-channels
115 pecl install oci8
117 find /etc -name php.ini
這兩個檔要加入 oci8 的 extentsion
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
install ok: channel://pecl.php.net/oci8-1.4.5
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini <------ 加這行
跑看看測試code:
$conn = oci_connect('oracle_user', 'oracle_pass', 'ip_address/instant_id');
$stid = oci_parse($conn, "select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual" );
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
print_r( $row );
oci_close( $conn );
// ——————————–
以下是 2011.5.25 修改
69 find / -name sqlplus -print 70 /usr/lib/oracle/11.2/client64/bin/sqlplus 71 cat > /etc/ld.so.conf.d/oracle.conf 73 ls -l /usr/lib/oracle/11.2/client64/lib/ 76 vi /etc/ld.so.conf.d/oracle.conf 77 apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql 86 apt-get install php-pear 91 pear config-set http_proxy http://172.30.1.123:8080/ 92 pecl update-channels 95 pecl install oci8
2010.0630 : 今天又在 debian 裝一次 發現, 這個版本沒辦法裝 oracle-instantclient11.2.* , 所以繼續用 instantclient11.1.*
Ubuntu 安裝 RPM 要用 alien …
sudo apt-get install alien
Ref. https://help.ubuntu.com/community/HowToBuildToraWithOracle
先去 http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
download 這幾個 files (rpm)
Instant Client Package – Basic Lite
oracle-instantclient11.1-basiclite-11.1.0.7.0-1.i386.rpm
Instant Client Package – SQL*Plus
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm
Instant Client Package – SDK
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
下 alien 指令安裝 rpm
alien -i oracle-instantclient11.1-basiclite-11.1.0.7.0-1.i386.rpm alien -i oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm alien -i oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm
裝好後用 sqlplus 聯看看 , 因為我得到一個 lib error
所以我要裝 apt-get install libaio1
在 /etc/ld.so.conf.d 加一個檔 cat > /etc/ld.so.conf.d/oracle.conf
內容是 oracle lib 的 path /usr/lib/oracle/11.1/client/lib
然後
apt-get install php5
apt-get install php5-dev
因為 oci8 是由 pecl 來安裝的, 所以要 apt-get install php-pear
再來裝 oci8 : pecl install oci8
在 /etc/php5/conf.d 下建一個 oci8.ini 檔 , cat > /etc/php5/conf.d/oci8.ini 內容是
extension=oci8.so
重新啟動 apache2 :
service apache2 restart
看看 phpinfo 有沒有出現 oci8 等字樣就 ok 了


加一個 virtual host :
在 /etc/apache2/sites-enabled 增加一個 xxx.conf 檔
CodeIgniter 需要用 rewrite module :
ls -sf /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled


