-
add repository and update
sudo add-apt-repository ppa:ruben-verweij/thunderbird-indicator
sudo apt-get update -
Install package
sudo apt-get install xul-ext-indicator libnotify-bin
Friday, October 28, 2011
how to make thunderbird notify new email like evolution on ubuntu
หลังจาก install thunderbird แล้ว ก็เกิดอยากได้ notify new email แบบ evolution บ้างจึงลองค้นดูก็เจอคนถามใน askubuntu พอดีเลย วิธีการคือ
Labels:
evolution,
notify new email,
thunderbird
Thursday, October 27, 2011
how to install thunderbird
หลัง ๆ เริ่มได้ใช้โปรแกรมดูดเมล์มา เริ่มตั้งแต่ outlook on windows , evolution mail on ubuntu ก็พอใช้งานได้ แต่สำหรับ evolution เริ่มใช้งานมากขึ้นเจอกับเมล์ข้อความหลาย ๆ บรรทัด ( 2000 - 3000 บรรทัด ) ทีไรเลื่อน ๆ ดูข้อความแล้วชอบเด้งออกตลอดเลย แต่ก็ไม่ค่อยได้ไปสนใจเท่าไร พอดีวันนี้เจอเว็บ webupd8 พูดถึง thunderbird จึงลองดูบ้าง โดยขั้นตอนการ install จาก webupd8 สำหรับ Ubuntu 11.04, 10.10 or 10.04
-
add repository and update package
sudo add-apt-repository ppa:mozillateam/thunderbird-stable
sudo apt-get update -
Install thunderbird
sudo apt-get install thunderbird
-
Install calendar plugin
sudo apt-get install xul-ext-lightning
- ถ้าหากต้องการปรับแต่งหน้าตาให้ดูดีขึ้น ก็ลง add-on เพิ่มเข้าไป โดยไปโหลด Thunderbird Conversations เก็บไว้ในเครื่องแล้วเข้าโปรแกรม thunderbird แล้วเลือกที่ Tools -> Add-ons แล้วคลิกที่ไอคอน Tools for all add-ons แล้วเลือก Install Add-on from file จากนั้นก็ restart thunderbird ก็จะได้ตามรูป
-
ถ้าหากมี calendar from evolution ให้ open thunderbird calendar, go Events&Task->import, and look into .local/share/evolution/calendar/system/calendar.ics file...
หรือถ้ามีข้อมูลเกี่ยวกับ filter หรือการตั้งค่าต่าง ๆ สามารถใช้ tools->import เลยได้ แต่สำหรับผมเหมือนมันจะยังไม่โอเคนะ
Labels:
ppa,
thunderbird,
ubuntu,
ubuntu desktop
Tuesday, October 25, 2011
how to move multiple file with CLI
การย้ายไฟล์จากที่หนึ่งไปยังอีกที่หนึ่ง ปกติแล้วถ้าหากใช้ Windows ก็จะเลือกไฟล์หลาย ๆ ไฟล์จากนั้นก็ Drag & Drop file ไปไว้อีกทีนึงได้เลย แต่ถ้าเป็น CLI (Command Line Interface) ละจะทำอย่างไร?
หากต้องการ move file ทั้ง directory '/home/user/a' and rename directory to directory '/home/user/b' เลยอาจใช้คำสั่งนี้
หากต้องการ move file ทั้ง directory '/home/user/a' and rename directory to directory '/home/user/b' เลยอาจใช้คำสั่งนี้
mv /home/user/a /home/user/bหาก /home/user/b exist can use this command
mv /home/user/a/* /home/user/bในขณะที่ file ที่ต้องการจะ move มีบางไฟล์จาก /home/user/a โดยที่ต้องการ move file ที่ไม่ได้ถูกเปลี่ยนแปลงมาแล้วเกินกว่า 30 วัน
find /home/user/a -type f -mtime +30 -exec mv '{}' /home/user/b \;
Wednesday, October 19, 2011
automatic shutdown server by cron
หลาย ๆ ครั้งที่เครื่อง Server ไม่สามารถ shutdown ได้ในเวลาที่เราทำงาน ครั้นจะให้กลับมา shutdown ตอนดึก ๆ ก็คงจะไม่ดี ตัวช่วยในเรื่องเวลาที่ ubuntu, debian, linux, bsd, freebsd, unix ต่างก็มีนั่นก็คือ cron
การใช้งาน
เข้า Terminal แล้วใช้คำสั่ง สำหรับการตั้งเวลา cron ด้วย root
เมื่อเรียกใช้คำสั่งแล้วจะพบกับหน้าจอสำหรับ กำหนดให้ cron ทำงาน โดย cron จะมีฟอแมตคือ
MIN คือนาที มีค่าตั้งแต่ 0 - 59
HOUR คือชั่วโมง มีค่าตั้งแต่ 0 - 23
DOM ย่อมาจาก Day of month คือวันที่นั่นเองครับ มีค่าตั้งแต่ 1 - 31 ตามจำนวนวันในเดือนนั้น ๆ
MON คือเดือน มีค่าตั้งแต่ 1 - 12
DOW ย่อมาจาก Day of week คือ วันในสัปดาห์ มีค่าตั้งแต่ 0 - 6 โดยที่เริ่มตั้งแต่ 0 คือวันอาทิตย์, 1 คือวันจันทร์ ... ไล่ไปเรื่อย ๆ จน 6 คือวันเสาร์
CMD คือคำสั่งที่ต้องการจะสั่งให้ server ทำงานอัตโนมัติตามเวลาที่กำหนด ซึ่งตามบทความนี้คำสั่งที่จะใช้คือ shutdown -h now สำหรับปิดเครื่อง และ reboot สำหรับ restart เครื่อง server
เมื่อรู้ความหมายของ format cron แล้วดังนั้น หากต้องการปิดเครื่อง server ทุกวันเวลา ตีสาม คำสั่งคือ
การใช้งาน
เข้า Terminal แล้วใช้คำสั่ง สำหรับการตั้งเวลา cron ด้วย root
sudo crontab -eหากว่าไม่ต้องการใช้ root ตั้งเวลา cron ต้องการเพียงแค่ user ที่ login อยู่ให้ใช้คำสั่ง
crontab -eหากเรียกใช้งาน crontab ครั้งแรกอาจมีคำถามว่าต้องการเลือก shell editor แบบไหน ผมขอแนะนำให้เลือก nano สำหรับมือใหม่ครับ
เมื่อเรียกใช้คำสั่งแล้วจะพบกับหน้าจอสำหรับ กำหนดให้ cron ทำงาน โดย cron จะมีฟอแมตคือ
MIN HOUR DOM MON DOW CMDโดยที่
MIN คือนาที มีค่าตั้งแต่ 0 - 59
HOUR คือชั่วโมง มีค่าตั้งแต่ 0 - 23
DOM ย่อมาจาก Day of month คือวันที่นั่นเองครับ มีค่าตั้งแต่ 1 - 31 ตามจำนวนวันในเดือนนั้น ๆ
MON คือเดือน มีค่าตั้งแต่ 1 - 12
DOW ย่อมาจาก Day of week คือ วันในสัปดาห์ มีค่าตั้งแต่ 0 - 6 โดยที่เริ่มตั้งแต่ 0 คือวันอาทิตย์, 1 คือวันจันทร์ ... ไล่ไปเรื่อย ๆ จน 6 คือวันเสาร์
CMD คือคำสั่งที่ต้องการจะสั่งให้ server ทำงานอัตโนมัติตามเวลาที่กำหนด ซึ่งตามบทความนี้คำสั่งที่จะใช้คือ shutdown -h now สำหรับปิดเครื่อง และ reboot สำหรับ restart เครื่อง server
เมื่อรู้ความหมายของ format cron แล้วดังนั้น หากต้องการปิดเครื่อง server ทุกวันเวลา ตีสาม คำสั่งคือ
00 03 * * * /sbin/shutdown -h nowตัวอย่างสำหรับหากต้องการ restart server ในวันที่ 20 ตุลาคม เวลา ตีสาม ห้านาที มีคำสั่งคือ
05 03 20 10 * /sbin/rebootเมื่อทำการแก้ไขเสร็จแล้วให้ save ด้วยคีย์ Ctrl+o กด enter และออกจาก editor ด้วยคีย์ Ctrl+x (สำหรับ editor nano) เพียงเท่านี้เครื่อง server ก็สามารถทำงานได้ตามที่เราต้องการโดยไม่ต้องนั่งหน้าเครื่องแล้วครับ
Cache .dep with squid-deb-proxy server
ปกติถ้าหากใช้เครื่องที่มี ubuntu เพียงเครื่องเดียวก็จะไม่มีความจำเป็นที่จะต้องเก็บ .dep ไว้ในเครื่อง server แต่ถ้าหากมีคนใช้ ubuntu ในออฟฟิศเดียวกันหลาย ๆ คน ครั้นจะให้แต่ละคนอัพเดตของตัวเองก็เกรงจะเปลือง bandwidth โดยใช่เหตุ ดังนั้นตัวช่วยในบทความนี้คือ squid-deb-proxy โดยมีขั้นตอนการติดตั้ง
[server]
[Client]
[server]
-
Install packages
sudo apt-get install avahi-utils
sudo apt-get install squid-deb-proxy -
Edit Configuration
sudo vi /etc/squid-deb-proxy/allowed-networks-src.acl
Add LAN IP such as LAN IP is 192.168.1.0 - 192.168.1.255 :192.168.1.0/24
sudo vi /etc/squid-deb-proxy/mirror-dstdomain.acl
Add all repository from all client ( can see in file /etc/apt/source.list ) to configuration file :# default ubuntu and ubuntu country archive mirrors
.archive.ubuntu.com
ports.ubuntu.com
security.ubuntu.com
#official third party repositories
archive.canonical.com
extras.ubuntu.com
-
Restart service :
sudo service avahi-daemon restart sudo service squid-deb-proxy start
-
Check log file at :
sudo tail -f /var/log/squid-deb-proxy/access.log
[Client]
-
Install squid-deb-proxy-client
sudo apt-get install squid-deb-proxy-client
-
Check client con connect to proxy
avahi-browse -kprt _apt_proxy._tcp
+;eth2;IPv4;Squid\032deb\032proxy;_apt_proxy._tcp;local
=;eth2;IPv4;Squid\032deb\032proxy;_apt_proxy._tcp;local;squidserver.local;192.168.1.10;8000;
192.168.1.10 is squid-proxy-server
sudo vi /etc/apt/apt.conf.d/30autoproxyจากนั้นใส่เครื่องหมาย # ด้านหน้าบรรทัดแบบนี้
#Acquire::http { Proxy "http://192.168.1.10:8000/"; };
Labels:
squid,
squid-deb-proxy,
squid-deb-proxy-client,
ubuntu
Tuesday, October 18, 2011
how to install openvpn + heartbeat on ubuntu server
การเชื่อมต่อข้อมูลสำหรับองค์กร ในบางครั้งจะมีข้อมูลที่ไม่อยากเอาขึ้น internet อาจเป็นข้อมูลที่มีความลับจึงไม่อยากเสี่ยงที่จะเอาขึ้น internet ดังนั้นจึงทำเป็น intranet (สำหรับในเครือข่าย lan เดียวกัน) ขึ้น แต่เมื่อมี สาขา เพิ่มขึ้นความต้องการใช้ข้อมูลของสาขาแรกในสาขาใหม่ที่อยู่ห่างออกไปก็มี แนวทางในการแก้ปัญหาแนวทางหนึ่งก็คือ openvpn เป็นการเชื่อมโยงสาขาใหม่ให้เสมือนทำงานอยู่ที่เดียวกับสาขาแรก โดยในบทความนี้จะแสดงขั้นตอนการ install openvpn step by step พร้อมกับ install heartbeat เพื่อคอยตรวจสอบ openvpn server โดยมี openvpn server จำนวน 2 เครื่อง ดังรูปด้านบน
กำหนดให้ openvpn server 2 เครื่องคือ 192.168.2.21 ( primary ) and 192.168.2.22 ( slave )
กำหนด virtual ip 192.168.2.20 openvpn
กำหนด real ip 123.4.5.6 ( เป็น firewall ที่ทำการ forward port ไปที่ openvpn server )
[Server]
[Client]
กำหนดให้ openvpn server 2 เครื่องคือ 192.168.2.21 ( primary ) and 192.168.2.22 ( slave )
กำหนด virtual ip 192.168.2.20 openvpn
กำหนด real ip 123.4.5.6 ( เป็น firewall ที่ทำการ forward port ไปที่ openvpn server )
[Server]
-
Install openvpn
sudo apt-get install openvpn
-
Copy files from /usr/share/doc/openvpn/examples/easy-rsa to /etc/openvpn
sudo mkdir /etc/openvpn/easy-rsa
sudo cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/ -
Edit file vars
sudo vi /etc/openvpn/easy-rsa/vars
Change these linesexport KEY_COUNTRY="TH" #Change to your Country
export KEY_PROVINCE="CM" #Change to your Province
export KEY_CITY=""
export KEY_ORG=""
export KEY_EMAIL=""
-
Setup CA and create server certificate
cd /etc/openvpn/easy-rsa/
sudo chown -R root:admin .
sudo chmod g+w .
source ./vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
sudo cp server.crt server.key ca.crt dh1024.pem ta.key ../../ -
Create certificate file for client
cd /etc/openvpn/easy-rsa
note : change
source ./vars
./pkitoolto user machine. -
Configuring openvpn
sudo vi /etc/openvpn/server.conf
Change config :local 192.168.2.20 #virtual ip for heartbeat port 1194 # TCP or UDP server? proto tcp dev tun ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key # This file should be kept secret dh /etc/openvpn/dh1024.pem server 192.168.201.0 255.255.255.0 #virtual ip for tunnel ifconfig-pool-persist ipp.txt push "dhcp-option DOMAIN simdif.local" push "dhcp-option DNS 192.168.2.1" #DNS push "route 192.168.2.0 255.255.255.0" push "route 192.168.201.0 255.255.255.0" client-to-client tls-auth ta.key 0 # This file is secret comp-lzo user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 4
-
Restart service openvpn
sudo /etc/init.d/openvpn restart
- ทำขั้นตอน 1-7 อีกครั้งกับเครื่อง openvpn server อีกเครื่อง
-
Install heartbeat
sudo apt-get install heartbeat
-
Copy original config to /etc/ha.d/
cd /usr/share/doc/heartbeat
sudo cp ha.cf haresources authkeys /etc/ha.d/ -
Edit ha.cf
sudo vi /etc/ha.d/ha.cf
Check and edit configurationdebugfile /var/log/ha-debug logfacility local0 keepalive 4 deadtime 60 warntime 10 initdead 120 udpport 694 bcast eth0 # Linux auto_failback on node openvpnserver01 node openvpnserver02 ping_group group1 192.168.2.21 192.168.2.22
-
Edit haresources
sudo vi /etc/ha.d/haresources
Change to :openvpnserver01 192.168.2.20 openvpn
-
Edit authkeys
sudo vi /etc/ha.d/authkeys
Change to :auth 2
2 sha1 test-ha -
Copy configuration file to 192.168.2.22
cd /etc/ha.d
scp ha.cf haresources authkeys username@192.168.2.22: -
Go to 192.168.2.22 and copy file to /etc/ha.d
cd ~
sudo cp ha.cf haresources authkeys /etc/ha.d -
Start heartbeat on the primary 192.168.2.21 and slave 192.168.2.22
sudo /etc/init.d/heartbeat start
-
Create firewall NAT both vpn server
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -
Edit file /etc/rc.local
sudo vi /etc/rc.local
Add 2 lines to configuration filesudo echo 1 > /proc/sys/net/ipv4/ip_forward sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE exit 0
[Client]
-
Install openvpn
sudo apt-get install openvpn
-
Copy certificate file from server ca.crt
.crt .key ta.key to /etc/openvpn -
Edit configuration
sudo vi /etc/openvpn/client.conf
Change to :client dev tun proto tcp remote 123.4.5.6 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun ca ca.crt cert
.crt key .key tls-auth ta.key 1 comp-lzo verb 3 log-append /var/log/openvpn.log -
Restart service openvpn
sudo /etc/init.d/openvpn restart
-
Check connection
ifconfig
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:192.168.201.6 P-t-P:192.168.201.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:152 errors:0 dropped:0 overruns:0 frame:0 TX packets:182 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:51111 (51.1 KB) TX bytes:21776 (21.7 KB)
Monday, October 17, 2011
How to find current runlevel on unix with who
คำสั่ง who เป็นคำสั่งเอาไว้แสดงว่าตอนนี้มีใคร log in อยู่ในระบบบ้าง โดยเมื่อใช้คำสั่ง
ที่มา www.theunixtips.com
whoจะแสดงผลประมาณนี้
yut tty7 2011-10-17 08:55 (:0) yut pts/1 2011-10-17 08:55 (:0)ในขณะที่คำสั่งสำหรับดู previous and current runlevel ก็คือคำสั่ง runlevel
runlevel
N 2แต่สำหรับคำสั่ง who นั้นสามารถดู current runlevel ได้ด้วยคำสั่ง
who -r
run-level 2 2011-10-17 08:54โดยถ้าหากต้องการดูทั้ง current runlevel และ ดูว่ามีใคร log in ในระบบด้วย จะใช้คำสั่ง
who -a
system boot 2011-10-17 08:54 run-level 2 2011-10-17 08:54 LOGIN tty4 2011-10-17 08:54 1008 id=4 LOGIN tty5 2011-10-17 08:54 1014 id=5 LOGIN tty2 2011-10-17 08:54 1034 id=2 LOGIN tty3 2011-10-17 08:54 1036 id=3 LOGIN tty6 2011-10-17 08:54 1042 id=6 LOGIN tty1 2011-10-17 08:54 1637 id=1 yut + tty7 2011-10-17 08:55 old 2043 (:0) yut + pts/1 2011-10-17 08:55 01:03 2133 (:0)
ที่มา www.theunixtips.com
Labels:
bash,
debian,
freebsd,
runlevel,
ubuntu,
ubuntu 11.10,
ubuntu desktop,
unix,
utmp,
who
Sunday, October 16, 2011
how to install ubuntu 11.10 step by step
ubuntu 11.10 ออกมาได้ประมาณ 2 วัน แต่ผมพึ่งจะมีเวลาโหลดมา ไหน ๆ ก็ติดตั้งแล้ว ก็เลยทำ step by step เป็นขั้นตอนสำหรับมือใหม่ด้วยเลยครับ
- เริ่มแรกให้เข้าไป download ไฟล์ก่อนที่ เว็บ ubuntu แล้ว write cd ซะ
- ทำการแบ่ง partition ก่อน อาจใช้ partition magic หรือโปรแกรมอื่นตามสะดวกครับ โดยแบ่งเป็น partition ว่าง ๆ โดยยังไม่ต้องทำการ format
- เมื่อได้แผ่นในการติดตั้งแล้วก็ restart computer แล้วเข้า bios เพื่อเซ๊ตให้ boot ผ่าน cd หรือไม่ก็คอยดูตอนเริ่มบูตจะมีบอกให้กด key เพื่อเลือก boot option บางเครื่องก็เป็น F10 บางเครื่องก็ F11 แล้วแต่เครื่องครับ
- เมื่อผ่านขั้นตอนกำหนดให้บูตด้วย cd แล้ว รอสักครู่จะพบหน้าจอนี้ หากต้องการ ทดลองใช้ให้เลือก Try Install แต่ถ้าจะลงเลยก็เลือกที่ Install Ubuntu ครับ โดยที่บทความนี้เลือก Install Ubuntu ครับ
- หลังจากเลือก Install Ubuntu แล้วจะได้หน้าจอนี้ Check box "Download updaes while installing" and "Install this third-party software" จากนั้น click Continue
- Choose Something else and click Continue
-
Choose "free space" ( partition ว่างที่ทำการแบ่งไว้ก่อนหน้านี้ ) Click Add
ช่อง "New partition size in megabytes" ให้ใส่พื้นที่ partition ที่ต้องการจะแบ่งในบทความนี้จะแบ่ง partition / and /swap เท่านั้น โดยให้พื้นที่สำหรับ /swap 1000 byte แล้วพื้นที่ที่เหลือสำหรับ / เมื่อแบ่งครบแล้ว ให้ click Install Now - จากนั้น ubuntu จะทำการ install ซึ่งในขณะนี้จะเป็นการกำหนดค่าต่าง ๆ ที่เหลือ โดยเริ่มจากกำหนด location time then click Continue
- Choose keyboard layout then click Continue
- กำหนดชื่อ และ password and click Continue
- ชงกาแฟมานั่งจิบรอสักพัก เมื่อ Install เสร็จแล้ว ให้คลิก Restart Now
- เมื่อ restart เข้ามาแล้วก็จะพบหน้าจอ login ใส่ password
- พร้อมใช้งานแล้ว
Saturday, October 15, 2011
ssh ไม่ต้องใส่รหัสผ่าน
ssh เป็นช่องทางในการ remote ไปจัดการเครื่อง server ที่นิยมใช้กันมากที่สุดเนื่องจากมีความปลอดภัยในการใช้งาน โดยคำสั่งในการใช้งาน ssh โดยปกติแล้วจะใช้
[user] เป็นชื่อ user ที่อยู่ฝั่ง server
[ip] เป็น ไอพีของฝั่ง server ที่ต้องการเชื่อมต่อ
แต่เมื่อมีการใช้งาน ssh บ่อยมาก ๆ ก็จะเริ่มไม่อยากพิมพ์รหัสผ่านในการเชื่อมต่อ ทุกครั้ง ซึ่งเครื่องที่ใช้ปกติก็ใช้เพียงคนเดียว จึงอยากทำให้ ssh แล้วไม่ต้องใส่รหัสผ่าน โดยแนวทางในการทำ ssh แบบไม่ต้องใส่รหัสผ่านนี้ ได้ใช้แนวทางจาก เว็บ thaicert แต่อาจมีบางคำสั่งที่ไม่เหมือนกันครับ ขั้นตอนการทำมีดังนี้
ssh -p [port] [user]@[ip]โดยที่ [port] เป็นเลข port ในการเชื่อมต่อ ซึ่งหากไม่ใส่จะเป็นค่า default คือ port 22
[user] เป็นชื่อ user ที่อยู่ฝั่ง server
[ip] เป็น ไอพีของฝั่ง server ที่ต้องการเชื่อมต่อ
แต่เมื่อมีการใช้งาน ssh บ่อยมาก ๆ ก็จะเริ่มไม่อยากพิมพ์รหัสผ่านในการเชื่อมต่อ ทุกครั้ง ซึ่งเครื่องที่ใช้ปกติก็ใช้เพียงคนเดียว จึงอยากทำให้ ssh แล้วไม่ต้องใส่รหัสผ่าน โดยแนวทางในการทำ ssh แบบไม่ต้องใส่รหัสผ่านนี้ ได้ใช้แนวทางจาก เว็บ thaicert แต่อาจมีบางคำสั่งที่ไม่เหมือนกันครับ ขั้นตอนการทำมีดังนี้
- สร้าง private key และ public key ด้วยคำสั่ง
- จากนั้นจะข้อความดังนี้
Generating public/private rsa key pair. Enter file in which to save the key (/home/[user]/.ssh/id_rsa):
ให้กด enter เลยเพื่อเก็บ key ไว้ที่แฟ้ม /home/[user]/.ssh/ โดยที่ [user] คือชื่อ user ของเครื่องที่ใช้ปกติ
- ข้อความต่อไปจะถามว่าต้องการเข้ารหัสผ่านของ key ด้วยหรือไม่
Enter passphrase (empty for no passphrase):
หากว่าเป็นเครื่องที่ใช้งานเพียงคนเดียว และแน่ใจว่ามีความปลอดภัยมากพอก็สามารถกด enter ได้เลยเพื่อไม่ต้องกำหนดรหัสผ่าน
- เมื่อสร้าง key เสร็จแล้ว กำหนด permission เพื่อความปลอดภัยมากขึ้น
chmod 600 id_rsa
chmod 644 id_rsa.pub - ขั้นตอนสุดท้ายเป็นการนำ public key ไปเก็บไว้ที่เครื่อง server
ssh-copy-id [user_serv]@[ip_serv]
[user_serv] คือ ชื่อ user ฝั่ง server
[ip_serv] คือ ไอพี ฝั่ง server
ssh-keygen -t rsa
Friday, October 14, 2011
ubuntu revelation ImportError: No module named _gnome
หลังจากเริ่มมี password มาเข้ามาอยู่ในชีวิตประจำวันมากขึ้น password ของเราเองก็มากพอสมควร ไหนยังจะ password จากที่ทำงานอีก จึงเหลือบไปเห็นมีคนใช้ revelation for contain password จึงเอาบ้าง ลองลงบ้าง ด้วยคำสั่ง
From the last one gnomecanvas, it make the error disapear.
แถมอีกอันนึงถ้าเจอ error แบบนี้
sudo apt-get install revelationลงเสร็จหาโปรแกรมเข้าเลย คลิกไอคอน รอไปพักนึง เอ๊ะ!!!!! เริ่มหลายพักแล้วทำไมไม่มีอะไรเกิดขึ้น จึงเปิด terminal คู่ใจ แล้วลองรันโปรแกรมดู
revelationจึงพบเข้ากับข้อความแบบนี้
Traceback (most recent call last): File "/usr/bin/revelation", line 25, inจัดการ ก๊อป error ไปค้นใน กูเกิ้ล หาไปหามา เจอเหมือนบอกว่ายังไม่ได้ลง python-gnome2 ก็แปลกใจกลับมาที่ terminal คู่ใจเหมือนเดิมลองตรวจสอบดูimport gettext, gnome, gobject, gtk, gtk.gdk, os, pwd, sys File "/usr/lib/pymodules/python2.7/gtk-2.0/gnome/__init__.py", line 13, in from _gnome import * ImportError: No module named _gnome
dpkg -s python-gnome2ได้ผลแบบนี้
Package: python-gnome2 Status: install ok installed Priority: optional Section: python Installed-Size: 1564 Maintainer: Ubuntu Desktop Teamเอามาให้ดูส่วนนึงนะ เดี๋ยวยาวเกิน จากด้านบน สังเกตุได้ว่า Status: install ok installed คือลงไปแล้วนั่นเอง อ้าว!!! ก็ลงไปแล้วนี่ไง จึงเริ่มเอ๊ะใจท่าทางคงต้องลองลงใหม่ จึงจัดไปด้วยคำสั่งArchitecture: amd64 Source: gnome-python Version: 2.28.1-1ubuntu3 Provides: python2.6-gnome2, python2.7-gnome2
sudo apt-get --reinstall install python-gnome2หลังจากลงเสร็จลองรัน
revelationข้อความ error เปลี่ยนไป เป็น
Traceback (most recent call last): File "/usr/bin/revelation", line 27, inแสดงว่ามาถูกทางแล้ว แต่ปัญหาความนี้คือ HRef มาจาก library ตัวไหนล่ะ?? ด้วยความไม่รู้ก็ไล่ลงไปเรื่อย จากที่เคยลงไว้อยู่แล้ว ไล่ไปตั้งแต่ python-gnome2-dev, python-gnome2-extras-dev, python-gnome2-desktop-dev, python-gnomecanvasfrom revelation import config, data, datahandler, dialog, entry, io, ui, util File "/usr/lib/python2.7/dist-packages/revelation/__init__.py", line 29, in import datahandler File "/usr/lib/python2.7/dist-packages/revelation/datahandler/__init__.py", line 28, in from fpm import FPM File "/usr/lib/python2.7/dist-packages/revelation/datahandler/fpm.py", line 27, in from revelation import data, entry, util File "/usr/lib/python2.7/dist-packages/revelation/data.py", line 26, in import datahandler, entry File "/usr/lib/python2.7/dist-packages/revelation/entry.py", line 26, in from revelation import ui File "/usr/lib/python2.7/dist-packages/revelation/ui.py", line 1222, in class LinkButton(gnome.ui.HRef): AttributeError: 'module' object has no attribute 'HRef'
From the last one gnomecanvas, it make the error disapear.
แถมอีกอันนึงถ้าเจอ error แบบนี้
/usr/bin/env: python2: No such file or directoryI found this error from openxenmanager when update to revision 82. This error can fix by
sudo ln -s /usr/bin/python2.7 /usr/bin/python2I get solution from this link.
Thursday, October 13, 2011
unix tip shell script if statement double bracket [[ ]]
พอดีได้เขียน shell script แล้วเห็นบางสิ่งที่แปลกตาไปนั่นคือ double bracket คือมีวงเล็บก้ามปูแบบคู่ แบบนี้ [[ ]] ซึ่งปกติแล้วจะเขียนแบบนี้ [ ] ยกตัวอย่างประโยค if statement ที่ใช้ปกติ
- สามารถใช้ * ในการตรวจสอบ string ได้ เช่นต้องการตรวจสอบว่าภายในข้อความของ string $value มีคำว่า foo อยู่รึป่าว สามารถใช้ if statement ดังนี้
if [ $value -lt 1 ]; then echo "increase value"; fiจากตัวอย่างเป็น if statement ที่ตรวจสอบเงื่อนไขว่า หากค่า $value น้อยกว่า 1 ให้แสดงผล increase value แล้วที่นี้ทำไมต้องมี double bracket ล่ะ เมื่อเกิดข้อสงสัยจึงไปค้นหาข้อมูล และเจอ เว็บนี้ บอกว่า double bracket นี้เป็นเวอร์ชั่นใหม่ ซึ่งนอกจากจะมีคุณสมบัติหลัก ๆ เหมือนเดิมทุกประการแล้วยังเพิ่มความสามารถเจ๋ง ๆ เข้ามาอีกด้วย ซึ่งความสามารถเจ๋ง ๆ ที่เพิ่มเข้ามานี้มีประมาณนี้
- สามารถใช้ * ในการตรวจสอบ string ได้ เช่นต้องการตรวจสอบว่าภายในข้อความของ string $value มีคำว่า foo อยู่รึป่าว สามารถใช้ if statement ดังนี้
if [[ $value == *foo* ]]; then- นอกจากนั้นยังใช้สำหรับตัวอักษรตัวเล็ก และตัวใหญ่ได้ เช่นต้องการตรวจสอบ ทั้งคำว่า Foo and foo จะได้ if statement ดังนี้
echo "This string have foo"
fi
if [[ $value == [fF]foo ]]; thenสำหรับตัวอย่างอื่น ๆ สามารถดูเพิ่มเติมจาก เว็บนี้ ครับ
echo "This string have foo or Foo"
fi
Labels:
free,
if statement,
linux,
shell script,
ubuntu
Wednesday, October 12, 2011
FreeBSD clonning
ไปเจอบทความของคุณครูนิส ที่เว็บนี้ แล้วทำให้นึกขึ้นได้ว่าจริง ๆ แล้วจะ Backup หรือ Clonning ก็ไม่ใช่เรื่องยากอะไรเลย เพราะโปรแกรมอะไรต่าง ๆ ที่อยู่ในแฟ้ม /usr and /var ก็เกิดจากการ compile มาแล้วทั้งสิ้น ทั้งนี้ทั้งนั้นเพียงแค่ copy แฟ้มสำคัญ ๆ เก็บเอาไว้แล้วเอามาใช้งานได้เลย ซึ่งเนื้อหาขั้นตอน ย่อ ๆ จาก เว็บคุณครูนิส ประมาณนี้
ทำการบีบอัดแฟ้ม สำคัญหลัก ๆ เอาไว้ ซึ่ง แฟ้มที่สำคัญคือ /root /boot /etc /usr และ /var ซึ่งนอกจากจะบีบอัดเป็น .tar.gz แล้วอาจประยุกต์ใช้ rsync ในการเก็บก็เป็นได้
- สำรองแฟ้ม /root
อีกสองแฟ้มทำแบบเดียวกันจากนั้นก็ copy ออกมา อาจทำการ write แผ่นเก็บไว้ หรือเก็บไว้ใน แฟรชไดฟ์ ก็ได้ เมื่อต้องการ restore หรือ เอาไปโคลนกับเครื่องอื่นก็จะมีขั้นตอน ดังนี้
Install FreeBSD แบบ Express ก่อน ใช้เวลาไม่นานมาก
เมื่อ Install เสร็จ จากนั้นก็นำไฟล์ที่บีบอัดนำมาลงเครื่องจากนั้นก็ทำการขยายไฟล์ไปตาม แฟ้มเดิม เพียงเท่านี้ก็จะสามารถใช้งานได้ตามเดิมแล้วครับ
สิ่งที่ในเว็บของครูมานิส เพิ่มขึ้นมาคือการเขียน Script สำหรับ restore or clone ซึ่งหากต้องทำหลาย ๆ เครื่องก็จะทำให้สะดวกแก่การใช้งานมากขึ้น
ขอบคุณแหล่งอ้างอิง เว็บคุณครูนิส ครับ
ทำการบีบอัดแฟ้ม สำคัญหลัก ๆ เอาไว้ ซึ่ง แฟ้มที่สำคัญคือ /root /boot /etc /usr และ /var ซึ่งนอกจากจะบีบอัดเป็น .tar.gz แล้วอาจประยุกต์ใช้ rsync ในการเก็บก็เป็นได้
- สำรองแฟ้ม /root
cd /root- สำรองแฟ้ม /boot
tar -zcvf /home/root.tar.gz *
cd /boot
tar -zcvf /home/boot.tar.gz *
อีกสองแฟ้มทำแบบเดียวกันจากนั้นก็ copy ออกมา อาจทำการ write แผ่นเก็บไว้ หรือเก็บไว้ใน แฟรชไดฟ์ ก็ได้ เมื่อต้องการ restore หรือ เอาไปโคลนกับเครื่องอื่นก็จะมีขั้นตอน ดังนี้
Install FreeBSD แบบ Express ก่อน ใช้เวลาไม่นานมาก
เมื่อ Install เสร็จ จากนั้นก็นำไฟล์ที่บีบอัดนำมาลงเครื่องจากนั้นก็ทำการขยายไฟล์ไปตาม แฟ้มเดิม เพียงเท่านี้ก็จะสามารถใช้งานได้ตามเดิมแล้วครับ
สิ่งที่ในเว็บของครูมานิส เพิ่มขึ้นมาคือการเขียน Script สำหรับ restore or clone ซึ่งหากต้องทำหลาย ๆ เครื่องก็จะทำให้สะดวกแก่การใช้งานมากขึ้น
ขอบคุณแหล่งอ้างอิง เว็บคุณครูนิส ครับ
Tuesday, October 11, 2011
how to disable startup application by command line
วิธีการยกเลิกการเปิดโปรแกรมอัตโนมัติเวลาเปิดเครื่อง แบบป่าเถื่อนสุดก็คือเข้าไปที่แฟ้ม /etc/rcX.d ( X เป็นตัวเลข runlevel มีค่าเป็น 0-6 ) แล้วแก้ตัวอักษรด้านหน้าจาก S เป็น K
ว่าแต่ว่า runlevel คืออะไร จากเว็บนี้ เค้าบอกว่าประมาณนี้
* 0 System Halt
* 1 Single user
* 2 Full multi-user mode (Default)
* 3-5 Same as 2
* 6 System Reboot
ทีนี้ถ้าอยากแก้ไขให้ ยกเลิก หรือ เพิ่ม startup program หลาย ๆ runlevel ล่ะจะมีตัวช่วยมั้ย แน่นอนต้องมีตัวช่วยอยู่แล้ว ซึ่งพระเอกวันนี้คือ update-rc.d นั่นเองครับ วิธีใช้คร่าว ๆ นะครับ
เพิ่ม startup program เฉพาะที่ 2-5 และที่ 0,1 และ 6 ให้ ยกเลิก
ที่นี้ลองยกเลิก startup program ที่ level 2-5 ครับ
อุ้ย!!! เกิดข้อความ คำเตือนขึ้นมา
ให้ใช้คำสั่งดังนี้
ว่าแต่ว่า runlevel คืออะไร จากเว็บนี้ เค้าบอกว่าประมาณนี้
* 0 System Halt
* 1 Single user
* 2 Full multi-user mode (Default)
* 3-5 Same as 2
* 6 System Reboot
ทีนี้ถ้าอยากแก้ไขให้ ยกเลิก หรือ เพิ่ม startup program หลาย ๆ runlevel ล่ะจะมีตัวช่วยมั้ย แน่นอนต้องมีตัวช่วยอยู่แล้ว ซึ่งพระเอกวันนี้คือ update-rc.d นั่นเองครับ วิธีใช้คร่าว ๆ นะครับ
เพิ่ม startup program เฉพาะที่ 2-5 และที่ 0,1 และ 6 ให้ ยกเลิก
sudo update-rc.d webmin start 20 2 3 4 5 . stop 20 0 1 6 .
ที่นี้ลองยกเลิก startup program ที่ level 2-5 ครับ
sudo update-rc.d openvpn stop 16 2 3 4 5 .
อุ้ย!!! เกิดข้อความ คำเตือนขึ้นมา
update-rc.d: warning: openvpn start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5) update-rc.d: warning: openvpn stop runlevel arguments (2 3 4 5) do not match LSB Default-Stop values (0 1 6) System start/stop links for /etc/init.d/openvpn already exist.
ให้ใช้คำสั่งดังนี้
sudo update-rc.d -f openvpn remove
sudo update-rc.d openvpn stop 16 2 3 4 5 .
Monday, October 10, 2011
เกี่ยวกับเวลา (ภาค ntp)
ได้มีบทความเกี่ยวกับเรื่องเวลาในบทความก่อนหน้านี้ไปแล้ว ซึ่งในบทความนี้ก็จะเกี่ยวกับเวลาเช่นเดียวกัน แต่เป็นคนละเรื่องกันนะ โดยในบทความนี้จะกล่าวถึงเรื่อง time syncronize ระหว่างเครื่องคอมพิวเตอร์ ซึ่งก่อนหน้านี้ได้มีโอกาสทำ NTP Server เอาไว้สำหรับ sync เวลาระหว่างเครื่องคอมพิวเตอร์ในวงแลนเดียวกันโดยการทำ NTP Server นั้นมีขั้นตอนง่าย ๆ ดังนี้
[ฝั่ง Server : ip 192.168.0.1]
- Install NTP server
- จากนั้นก็ทำการปรับแต่ง configuration โดยเพิ่มข้อความด้านล่างนี้ที่แฟ้ม /etc/ntp.conf
สำหรับ 3 บรรทัดแรก บอกว่าให้ทำการ sync เวลากับ server เหล่านี้ ที่ใดที่หนึ่ง ซึ่งหาก internet down หรือเกิดปัญหาในการเชื่อมต่อใด ๆ เกิดขึ้น ก็จะใช้ 3 บรรทัดหลังสุดนั่นคือใช้เวลาในเครื่อง server เครื่องนี้เอง
- เมื่อทำการปรับแต่งค่าเสร็จแล้วก็ทำการ restart service ซะเป็นอันเสร็จพิธี
[ฝั่ง client]
- Install NTP เช่นเดียวกัน
- จากนั้นทำการปรับแต่ง แฟ้ม /etc/ntp.conf โดยเพิ่มไอพีเครื่อง Server ด้านบนลงไป
- สุดท้ายทำการ restart service
เพียงเท่านี้ก็จะมีเครื่อง Server สำหรับ sync เวลาภายในแลนเดียวกันใช้แล้วครับ
ต่อไปผมเกิดข้อสงสัยขึ้นเมื่อใช้งาน ntptrace เพื่อทดสอบการ เชื่อมต่อระหว่าง client & server ซึ่งเกิดข้อผิดพลาดขึ้นโดยแจ้งว่า ***Request timed out อ้าว ! ก็เมื่อกี้ทำเสร็จแล้วนี่ตรวจสอบเวลาก็ sync กันแล้วนี่นาทำไม่ timed out ล่ะ จึงค้นหาใน google หาไปหามาไม่กระจ่าง สงสัยใช้คำค้นไม่ดี จึงลองนั่งดูที่ไฟล์ config อีกครั้งจึงไปเจอ ตำแหน่งนี้
จึงได้ลองทำการเพิ่มเข้าไปเป็นดังนี้
บรรทัดสุดท้ายที่เพิ่มเข้าไปเป็น ไอพี วงแลนนั่นเอง ซึ่งตรงส่วนนี้เป็นส่วนที่ อนุญาต (น่าจะเขียนยังงี้นะ จำได้ว่าไม่ใช่ อนุญาติ) ให้เครื่องภายในไอพีที่กำหนด สามารถใช้คำสั่ง ntptrace เพื่อตรวจสอบการเชื่อมต่อได้โดยผลการใช้คำสั่งจะได้ประมาณนี้ครับ
[ฝั่ง Server : ip 192.168.0.1]
- Install NTP server
sudo apt-get install ntp
- จากนั้นก็ทำการปรับแต่ง configuration โดยเพิ่มข้อความด้านล่างนี้ที่แฟ้ม /etc/ntp.conf
server 0.th.pool.ntp.org
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
# If machine cannot connect to internet this will use this machine
server 127.127.1.0
fudge 127.127.1.0 stratum 10
server 0.asia.pool.ntp.org
server 2.asia.pool.ntp.org
# If machine cannot connect to internet this will use this machine
server 127.127.1.0
fudge 127.127.1.0 stratum 10
สำหรับ 3 บรรทัดแรก บอกว่าให้ทำการ sync เวลากับ server เหล่านี้ ที่ใดที่หนึ่ง ซึ่งหาก internet down หรือเกิดปัญหาในการเชื่อมต่อใด ๆ เกิดขึ้น ก็จะใช้ 3 บรรทัดหลังสุดนั่นคือใช้เวลาในเครื่อง server เครื่องนี้เอง
- เมื่อทำการปรับแต่งค่าเสร็จแล้วก็ทำการ restart service ซะเป็นอันเสร็จพิธี
sudo /etc/init.d/ntp restart
[ฝั่ง client]
- Install NTP เช่นเดียวกัน
sudo apt-get install ntp
- จากนั้นทำการปรับแต่ง แฟ้ม /etc/ntp.conf โดยเพิ่มไอพีเครื่อง Server ด้านบนลงไป
server 192.168.0.1
- สุดท้ายทำการ restart service
sudo /etc/init.d/ntp restart
เพียงเท่านี้ก็จะมีเครื่อง Server สำหรับ sync เวลาภายในแลนเดียวกันใช้แล้วครับ
ต่อไปผมเกิดข้อสงสัยขึ้นเมื่อใช้งาน ntptrace เพื่อทดสอบการ เชื่อมต่อระหว่าง client & server ซึ่งเกิดข้อผิดพลาดขึ้นโดยแจ้งว่า ***Request timed out อ้าว ! ก็เมื่อกี้ทำเสร็จแล้วนี่ตรวจสอบเวลาก็ sync กันแล้วนี่นาทำไม่ timed out ล่ะ จึงค้นหาใน google หาไปหามาไม่กระจ่าง สงสัยใช้คำค้นไม่ดี จึงลองนั่งดูที่ไฟล์ config อีกครั้งจึงไปเจอ ตำแหน่งนี้
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
restrict 127.0.0.1
restrict ::1
จึงได้ลองทำการเพิ่มเข้าไปเป็นดังนี้
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
restrict 192.168.0.0 mask 255.255.255.0
restrict 127.0.0.1
restrict ::1
restrict 192.168.0.0 mask 255.255.255.0
บรรทัดสุดท้ายที่เพิ่มเข้าไปเป็น ไอพี วงแลนนั่นเอง ซึ่งตรงส่วนนี้เป็นส่วนที่ อนุญาต (น่าจะเขียนยังงี้นะ จำได้ว่าไม่ใช่ อนุญาติ) ให้เครื่องภายในไอพีที่กำหนด สามารถใช้คำสั่ง ntptrace เพื่อตรวจสอบการเชื่อมต่อได้โดยผลการใช้คำสั่งจะได้ประมาณนี้ครับ
192.168.0.1: stratum 3, offset -0.001071, synch distance 0.101328
[ทิป] ค้นหาคำจากเอกสารด้วย กรึ๊บ (grep)
การค้นหาคำจากเอกสารสำหรับหน้า GUI นั้น จะคุ้นเคยกับ Ctrl+F ซึ่งสามารถใช้กับ MS word, Texteditor, Firefox etc. แล้วก็ใส่คำที่ต้องการค้นหาไป ก็จะสามารถค้นหาคำที่ต้องการได้ ซึ่งในวันนี้ไม่ได้เล่าถึงวิธีใช้งาน Ctrl+F ที่คุ้นเคยกัน แต่จะแนะนำให้รู้จักกับ กรึ๊บ (grep) คำสั่ง command line บน linux
การใช้ grep ค้นหาคำที่ text file นั้นสามารถใช้คำสั่ง นี้ได้
จากคำสั่งข้างต้น อธิบายทีละส่วนได้ ดังนี้
เป็นคำสั่งในการอ่านไฟล์ php.ini แล้วแสดงผลทีละบรรทัดออกมายังหน้าจอแสดงผล ในขณะที่
นั้นจะเอาข้อมูลที่ได้จาก "cat php.ini" มาทำการค้นหาบรรทัดที่มีคำว่า session เท่านั้นจึงจะแสดงผล
ซึ่งคำสั่งนี้สามารถนำมาใช้กับการค้นหา package ที่ต้องการค้นหาได้ด้วย เช่น
โดยที่คำสั่ง dpkg -l เป็นคำสั่งในการ แสดงผล package ทั้งหมดที่ install ในเครื่อง ( ubuntu , debian ) ซึ่ง grep apache ก็เป็นการบอกให้แสดงผลเฉพาะบรรทัดที่มี apache เช่นกัน
Tip ในวันนี้ที่จะนำเสนอคือ การค้นหาคำจาก directory ซึ่งมีหลาย ๆ ไฟล์พร้อมกัน เช่นต้องการค้นหาคำว่า session ใน directory ที่มีชื่อว่า folder1 ใช่คำสั่งดังนี้
ผลที่ได้จะแสดงที่อยู่ของไฟล์ใน folder1 แล้วจะแสดงผลเฉพาะบรรทัดที่มี session เท่านั้น
การใช้ grep ค้นหาคำที่ text file นั้นสามารถใช้คำสั่ง นี้ได้
cat php.ini | grep session
จากคำสั่งข้างต้น อธิบายทีละส่วนได้ ดังนี้
cat php.ini
เป็นคำสั่งในการอ่านไฟล์ php.ini แล้วแสดงผลทีละบรรทัดออกมายังหน้าจอแสดงผล ในขณะที่
grep session
นั้นจะเอาข้อมูลที่ได้จาก "cat php.ini" มาทำการค้นหาบรรทัดที่มีคำว่า session เท่านั้นจึงจะแสดงผล
ซึ่งคำสั่งนี้สามารถนำมาใช้กับการค้นหา package ที่ต้องการค้นหาได้ด้วย เช่น
dpkg -l | grep apache
โดยที่คำสั่ง dpkg -l เป็นคำสั่งในการ แสดงผล package ทั้งหมดที่ install ในเครื่อง ( ubuntu , debian ) ซึ่ง grep apache ก็เป็นการบอกให้แสดงผลเฉพาะบรรทัดที่มี apache เช่นกัน
Tip ในวันนี้ที่จะนำเสนอคือ การค้นหาคำจาก directory ซึ่งมีหลาย ๆ ไฟล์พร้อมกัน เช่นต้องการค้นหาคำว่า session ใน directory ที่มีชื่อว่า folder1 ใช่คำสั่งดังนี้
grep "session" -r folder1
ผลที่ได้จะแสดงที่อยู่ของไฟล์ใน folder1 แล้วจะแสดงผลเฉพาะบรรทัดที่มี session เท่านั้น
Location:
จ.เชียงใหม่ ประเทศไทย
Thursday, October 6, 2011
ขอบคุณ สตีฟ (Thank you Steve!)
พอดีเห็น feed เด้งมาเลยเข้าไปดูที่ Blog นี้ เห็นรูปนี้เข้า
ดูแล้วสื่ออะไรหลาย ๆ อย่าง จนต้องเข้าไปอ่านข้อความ ไว้อาลัย แก่ศาสดาของ apple ผู้ที่สร้างสรรหลายสิ่งหลายอย่างขึ้นมา ขอบคุณสำหรับไอเดียสุดเจ๋ง หลาย ๆ อย่าง แม้ว่าจะมีปัญหากันเล็กน้อย (รึป่าวไม่แน่ใจ) กับ Linus ศาสดาของลินุกซ์ แต่เค้าก็จะอยู่ในใจเราตลอดไป
ดูแล้วสื่ออะไรหลาย ๆ อย่าง จนต้องเข้าไปอ่านข้อความ ไว้อาลัย แก่ศาสดาของ apple ผู้ที่สร้างสรรหลายสิ่งหลายอย่างขึ้นมา ขอบคุณสำหรับไอเดียสุดเจ๋ง หลาย ๆ อย่าง แม้ว่าจะมีปัญหากันเล็กน้อย (รึป่าวไม่แน่ใจ) กับ Linus ศาสดาของลินุกซ์ แต่เค้าก็จะอยู่ในใจเราตลอดไป
เปรียบเทียบเอกสารสองแฟ้มว่าต่างกันหรือไม่?
หลายครั้งที่มีเอกสารมาให้เปรียบเทียบกันว่ามีความแตกต่างกันหรือไม่ ต่างกันตรงไหนบ้าง config file ทั้งสองเหมือนกันมั้ย มีอะไรต่างกันบ้าง? วิธีป่าเถื่อนในการเปรียบเทียบก็คือ เปิดไฟล์ทั้งสองมา แล้วใช้ลูกตา มานั่งตรวจทีละบรรทัด ถ้าหากเอกสารมีไม่กี่บรรทัดก็ยังสบายอยู่ แต่ถ้าหากหลายบรรทัดมากคง เวียนหัวน่าดู ถ้ายังงั้นจะมีอะไรช่วยได้บ้างล่ะ
บน commandline ก็จะมีตัวช่วยอยู่ ชื่อว่า diff การใช้งานก็เพียงแค่พิมพ์คำสั่งไป
เป็นการเปรียบเทียบระหว่างเอกสารชื่อ doc1 และ doc2 ซึ่งผลลัพธ์ที่ได้ออกมาจะเป็นประมาณนี้
9,11c9,11
< ii apt 0.7.25.3ubuntu9.7 Advanced front-end for dpkg
< ii apt-transport-https 0.7.25.3ubuntu9.7 APT https transport
< ii apt-utils 0.7.25.3ubuntu9.7 APT utility programs
---
> ii apt 0.7.25.3ubuntu9.6 Advanced front-end for dpkg
> ii apt-transport-https 0.7.25.3ubuntu9.6 APT https transport
> ii apt-utils 0.7.25.3ubuntu9.6 APT utility programs
27c27
< ii ca-certificates 20090814ubuntu0.10.04.1 Common CA certificates
---
> ii ca-certificates 20090814 Common CA certificates
แต่ออกมาแบบนี้ก็แอบดูยากจัง ดังนั้นขอแนะนำตัวนี้เลยครับ meld เป็นโปรแกรมแบบ GUI คือไม่ต้องมานั่งพิมพ์คำสั่งให้ งง อีกต่อไป สำหรับ Ubuntu วิธีลงก็
โดยหน้าตาโปรแกรมจะเป็นประมาณนี้ครับ ใช้งานง่ายจริง ๆ ขอบอก :)
บน commandline ก็จะมีตัวช่วยอยู่ ชื่อว่า diff การใช้งานก็เพียงแค่พิมพ์คำสั่งไป
diff doc1 doc2
เป็นการเปรียบเทียบระหว่างเอกสารชื่อ doc1 และ doc2 ซึ่งผลลัพธ์ที่ได้ออกมาจะเป็นประมาณนี้
9,11c9,11
< ii apt 0.7.25.3ubuntu9.7 Advanced front-end for dpkg
< ii apt-transport-https 0.7.25.3ubuntu9.7 APT https transport
< ii apt-utils 0.7.25.3ubuntu9.7 APT utility programs
---
> ii apt 0.7.25.3ubuntu9.6 Advanced front-end for dpkg
> ii apt-transport-https 0.7.25.3ubuntu9.6 APT https transport
> ii apt-utils 0.7.25.3ubuntu9.6 APT utility programs
27c27
< ii ca-certificates 20090814ubuntu0.10.04.1 Common CA certificates
---
> ii ca-certificates 20090814 Common CA certificates
แต่ออกมาแบบนี้ก็แอบดูยากจัง ดังนั้นขอแนะนำตัวนี้เลยครับ meld เป็นโปรแกรมแบบ GUI คือไม่ต้องมานั่งพิมพ์คำสั่งให้ งง อีกต่อไป สำหรับ Ubuntu วิธีลงก็
sudo apt-get install meld
โดยหน้าตาโปรแกรมจะเป็นประมาณนี้ครับ ใช้งานง่ายจริง ๆ ขอบอก :)
kernel.org กลับมาแล้ว
บางคนอาจสงสัยว่า kernel.org คืออะไรเหรอ? เป็นเว็บเหรอ หรือยังไง คำตอบคือใช่ครับเป็นเว็บครับ เป็นเว็บสำหรับพัฒนา และให้ ดาวน์โหลด ไฟล์ kernel ที่เป็นแกนกลางของ ลินุกซ์ครับ น่าจะประมาณนี้ได้ครับ
อ้าว แล้วเกิดอะไรขึ้นล่ะ kernel.org หายไปไหนเหรอ? เมื่อประมาณเดือนที่แล้วเกิดปัญหาด้านความปลอดภัยขึ้นกับเว็บเค้าน่ะ หรือเรียกภาษาชาวบ้านว่าโดนแฮค นั่นเอง เหมือนจะเข้ากับปัญหาปัจจุบันวันนี้จัง ที่เมื่อไม่กี่วันที่ผ่านมาทวิตเตอร์นายกก็โดนแฮค ดังนั้นคงไม่ต้องอธิบายคำว่าแฮคคืออะไรแล้วล่ะ :)
หลังจากโดนปัญหานี้เข้าไป จึงทำให้เว็บปิด เพื่อตรวจสอบโค๊ดทั้งหมดว่ามีการเปลี่ยนแปลงหรือไม่ และได้ทำการจัดระบบใหม่ พร้อมทั้งปรับปรุงด้านความปลอดภัยใหม่ด้วย ซึ่งวันนี้ก็ได้กลับมาให้บริการอีกครั้งครับ
ยินดีต้อนรับการกลับมาของ kernel.org อีกคนครับ
อ้าว แล้วเกิดอะไรขึ้นล่ะ kernel.org หายไปไหนเหรอ? เมื่อประมาณเดือนที่แล้วเกิดปัญหาด้านความปลอดภัยขึ้นกับเว็บเค้าน่ะ หรือเรียกภาษาชาวบ้านว่าโดนแฮค นั่นเอง เหมือนจะเข้ากับปัญหาปัจจุบันวันนี้จัง ที่เมื่อไม่กี่วันที่ผ่านมาทวิตเตอร์นายกก็โดนแฮค ดังนั้นคงไม่ต้องอธิบายคำว่าแฮคคืออะไรแล้วล่ะ :)
หลังจากโดนปัญหานี้เข้าไป จึงทำให้เว็บปิด เพื่อตรวจสอบโค๊ดทั้งหมดว่ามีการเปลี่ยนแปลงหรือไม่ และได้ทำการจัดระบบใหม่ พร้อมทั้งปรับปรุงด้านความปลอดภัยใหม่ด้วย ซึ่งวันนี้ก็ได้กลับมาให้บริการอีกครั้งครับ
ยินดีต้อนรับการกลับมาของ kernel.org อีกคนครับ
Wednesday, October 5, 2011
ว่าด้วยเรื่องของ rcS (ต่อ)
หลังจากได้ค้นหาการจัดการเกี่ยวกับเวลาแล้วจึงได้พบว่าในแฟ้มนั้น (/etc/default/rcS) ยังมี อย่างอื่นให้กำหนดด้วย ซึ่งมีดังนี้
TMPTIME=0
SULOGIN=no
DELAYLOGIN=no
UTC=yes
VERBOSE=no
FSCKFIX=no
มีหลายอันเลยแล้วอะไรทำอะไรได้บ้างล่ะ?
หลังจากดูที่หัวไฟล์มีบอกเอาไว้ว่าถ้าอยากรู้ว่าอะไรทำอะไรได้บ้างก็ให้ลอง ผู้ชาย (man) ดู จึงจัดการ man rcS ดูจึงรู้ว่า
TMPTIME เอาไว้ตั้งค่าสำหรับที่เก็บแฟ้มที่อยู่ใน /tmp ซึ่งค่าปกติเวลาปิดเปิดเครื่องใหม่ แฟ้มอะไรก็ตามที่อยู่ในนี้จะถูกลบทั้งหมด หากไม่อยากลบก็อาจจะตั้งค่าเป็น -1 หรือจะตั้งค่าเยอะ ๆ มาก ๆ ก็ได้
SULOGIN ไม่แน่ใจว่าเป็นอะไร แต่เท่าที่อ่านดูเป็นการตั้งค่าให้ตอนบูตตอนแรกเป็นสถานะ su เลย แต่หากไม่ได้ log in ด้วย Administrator ภายใน 30 วินาที session ของ sulogin ก็จะหมดไป
DELAYLOGIN ความหมายก็ตรงกับชื่อ นั่นคือ หน่วงการ log in ไว้ก่อน ซึ่ง ปกติแล้วเวลาบูตเข้าโอเอส จะต้องรอให้ ทำ process ทุกอย่างให้เสร็จก่อนถึงจะ log in ได้ แต่ในทางทฤษฎีคิดว่าไม่จำเป็นต้องรอนานขนาดนั้นก็ได้ ในเมื่อมี process บางตัวรันเสร็จแล้วก็น่าจะสามารถ log in ได้แล้วสิ ดังนั้นหากตั้งค่าเป็น no ก็คือสามารถ log in ก่อนที่จะรันเสร็จทุกอย่างได้ ในขณะที่ yes ให้หน่วงไว้ก่อน รอจนทุกอย่างเสร็จจึง log in
VERBOSE อธิบายสั้น ๆ ว่า เป็นตัวที่เปิด ปิด ข้อความเวลาบูต นั่นเอง
ที่นี้มาถึงตัวสำคัญที่ผมสงสัย นั่นคือ FSCKFIX ตอนแรกที่เห็น (ยังไม่ได้อ่านผู้ชาย man) คิดไปถึงว่า เอ๊ะ ... ทำไมเครื่องเราไม่ได้ตั้งค่าให้ ตรวจสอบดิส เหรอเนี่ย หลังจากไปอ่าน man จึงทำให้รู้ว่า ปกติแล้วระบบ เวลารัน fsck จะใส่ค่า -a [ fsck -a ] สำหรับ autorepair ให้เรา แต่บ่อยครั้งที่เกิดข้อผิดพลาด ระบบก็จะเด้ง บอกเราว่าให้เรารัน fsck เอง ซึ่งหากรันเฉย ๆ ก็อาจจะเจอให้ กด y เพียบเลย ดังนั้นจึงมี พารามิเตอร์ -y [ fsck -y ] เพื่อให้ ตอบ y แทนเรา
จากเหตุผลที่บอกไป หากใส่ค่าเป็น FSCKFIX=yes ก็จะเป็นการให้ระบบ ใช้คำสั่ง fsck -y แทนด้วย fsck -a นั่นเอง
แต่ผมก็สงสัยว่าทำไมไม่ให้เริ่มต้น ด้วยคำสั่ง fsck -y ไปเลย เพราะปกติเราก็ต้องใส่ - y กันอยู่แล้วมิใช่รึ จึงเดาว่าอาจเป็นเพราะอยากให้ผู้ดูแลระบบเป็นคนตัดสินใจดีกว่าว่าจะกด y มั้ย หากมีปัญหาจะได้โทษ โอเอส ไม่ได้ว่าทำมาไม่ดี นะ
TMPTIME=0
SULOGIN=no
DELAYLOGIN=no
UTC=yes
VERBOSE=no
FSCKFIX=no
มีหลายอันเลยแล้วอะไรทำอะไรได้บ้างล่ะ?
หลังจากดูที่หัวไฟล์มีบอกเอาไว้ว่าถ้าอยากรู้ว่าอะไรทำอะไรได้บ้างก็ให้ลอง ผู้ชาย (man) ดู จึงจัดการ man rcS ดูจึงรู้ว่า
TMPTIME เอาไว้ตั้งค่าสำหรับที่เก็บแฟ้มที่อยู่ใน /tmp ซึ่งค่าปกติเวลาปิดเปิดเครื่องใหม่ แฟ้มอะไรก็ตามที่อยู่ในนี้จะถูกลบทั้งหมด หากไม่อยากลบก็อาจจะตั้งค่าเป็น -1 หรือจะตั้งค่าเยอะ ๆ มาก ๆ ก็ได้
SULOGIN ไม่แน่ใจว่าเป็นอะไร แต่เท่าที่อ่านดูเป็นการตั้งค่าให้ตอนบูตตอนแรกเป็นสถานะ su เลย แต่หากไม่ได้ log in ด้วย Administrator ภายใน 30 วินาที session ของ sulogin ก็จะหมดไป
DELAYLOGIN ความหมายก็ตรงกับชื่อ นั่นคือ หน่วงการ log in ไว้ก่อน ซึ่ง ปกติแล้วเวลาบูตเข้าโอเอส จะต้องรอให้ ทำ process ทุกอย่างให้เสร็จก่อนถึงจะ log in ได้ แต่ในทางทฤษฎีคิดว่าไม่จำเป็นต้องรอนานขนาดนั้นก็ได้ ในเมื่อมี process บางตัวรันเสร็จแล้วก็น่าจะสามารถ log in ได้แล้วสิ ดังนั้นหากตั้งค่าเป็น no ก็คือสามารถ log in ก่อนที่จะรันเสร็จทุกอย่างได้ ในขณะที่ yes ให้หน่วงไว้ก่อน รอจนทุกอย่างเสร็จจึง log in
VERBOSE อธิบายสั้น ๆ ว่า เป็นตัวที่เปิด ปิด ข้อความเวลาบูต นั่นเอง
ที่นี้มาถึงตัวสำคัญที่ผมสงสัย นั่นคือ FSCKFIX ตอนแรกที่เห็น (ยังไม่ได้อ่านผู้ชาย man) คิดไปถึงว่า เอ๊ะ ... ทำไมเครื่องเราไม่ได้ตั้งค่าให้ ตรวจสอบดิส เหรอเนี่ย หลังจากไปอ่าน man จึงทำให้รู้ว่า ปกติแล้วระบบ เวลารัน fsck จะใส่ค่า -a [ fsck -a ] สำหรับ autorepair ให้เรา แต่บ่อยครั้งที่เกิดข้อผิดพลาด ระบบก็จะเด้ง บอกเราว่าให้เรารัน fsck เอง ซึ่งหากรันเฉย ๆ ก็อาจจะเจอให้ กด y เพียบเลย ดังนั้นจึงมี พารามิเตอร์ -y [ fsck -y ] เพื่อให้ ตอบ y แทนเรา
จากเหตุผลที่บอกไป หากใส่ค่าเป็น FSCKFIX=yes ก็จะเป็นการให้ระบบ ใช้คำสั่ง fsck -y แทนด้วย fsck -a นั่นเอง
แต่ผมก็สงสัยว่าทำไมไม่ให้เริ่มต้น ด้วยคำสั่ง fsck -y ไปเลย เพราะปกติเราก็ต้องใส่ - y กันอยู่แล้วมิใช่รึ จึงเดาว่าอาจเป็นเพราะอยากให้ผู้ดูแลระบบเป็นคนตัดสินใจดีกว่าว่าจะกด y มั้ย หากมีปัญหาจะได้โทษ โอเอส ไม่ได้ว่าทำมาไม่ดี นะ
เกี่ยวกับเรื่องเวลา
เกี่ยวกับเรื่องเวลานั้นไม่ได้หมายถึง เธอมีเวลาให้เราหรือไม่ แต่เป็น เวลาในเครื่องคอมพิวเตอร์นะจ๊ะ
วันนี้ใช้งาน ubuntu แล้วนึกขึ้นได้ว่า สำหรับ ubuntu & debian นั้นจะมีเวลาสองแบบคือเวลาในเครื่อง (ที่กำหนดใน mainboard) ตรงนี้จะเรียกว่าเวลามาตรฐาน ส่วนเวลาที่อยู่ในระบบปฏิบัติการจะเป็นเวลาตาม ท้องถิ่น (Timezone) เช่น Asia/Bangkok เป็นต้น
ถ้าหากว่าตอนลงไม่ได้กำหนด เวลาท้องถิ่น ไว้จะทำอย่างไร? ก็จะมี tzdata คอยจัดการให้ครับ วิธีการสั่งให้ทำงานดังนี้ครับ
แล้วก็เลือกไปตามต้องการ
ปัญหาต่อไปสำหรับเครื่อง Desktop นั้นปกติ หลาย ๆ คนอาจจะลงไว้หลาย โอเอส (วินโดว์ , ลินุกซ์) บ้าง ซึ่งเวลาเปลี่ยนไปใช้อีกโอเอสนึง เวลาก็จะเปลี่ยนไป อาจต้องรอให้ syn เวลา กับ server ก่อนอีก หรือกระทั่งลงไว้เพียงตัวเดียว แต่กรณีถ่านเมนบอร์ดหมด (ทำไมไม่เปลี่ยนซะที) เวลาจะเปิดเครื่องเราก็จะเจอประโยคที่บอกประมาณว่า ให้กด F1 แล้วไปต่อ หรือยังไม่อยากไปต่อก็กด DEL ไปตั้งค่าซะ ผมชอบกด DEL แล้วไปตั้งค่าก่อนเข้าโอเอส แล้วผมก็ตั้งเวลาปัจจุบันจากนาฬิกาข้อมืออันเที่ยงตรงของเรา แต่พอเข้าไปในโอเอส ก็จะสับสนว่าเมื่อกี้ตั้งตรงแล้วนิ๊ ซึ่งปัญหานี้มันเกิดจากที่เกริ่นไว้ด้านบนนั่นเองครับ
การจัดการให้ ทั้งสองเข้าใจตรงกันเป็นคนชาติเดียวกันนั้นก็ให้เข้าไปจัดการที่แฟ้ม
แล้วแก้ไขบรรทัด UTC=yes ให้เป็น UTC=no ซะก็เข้าใจตรงกันแล้ว
วันนี้ใช้งาน ubuntu แล้วนึกขึ้นได้ว่า สำหรับ ubuntu & debian นั้นจะมีเวลาสองแบบคือเวลาในเครื่อง (ที่กำหนดใน mainboard) ตรงนี้จะเรียกว่าเวลามาตรฐาน ส่วนเวลาที่อยู่ในระบบปฏิบัติการจะเป็นเวลาตาม ท้องถิ่น (Timezone) เช่น Asia/Bangkok เป็นต้น
ถ้าหากว่าตอนลงไม่ได้กำหนด เวลาท้องถิ่น ไว้จะทำอย่างไร? ก็จะมี tzdata คอยจัดการให้ครับ วิธีการสั่งให้ทำงานดังนี้ครับ
sudo dpkg-reconfigure tzdata
แล้วก็เลือกไปตามต้องการ
ปัญหาต่อไปสำหรับเครื่อง Desktop นั้นปกติ หลาย ๆ คนอาจจะลงไว้หลาย โอเอส (วินโดว์ , ลินุกซ์) บ้าง ซึ่งเวลาเปลี่ยนไปใช้อีกโอเอสนึง เวลาก็จะเปลี่ยนไป อาจต้องรอให้ syn เวลา กับ server ก่อนอีก หรือกระทั่งลงไว้เพียงตัวเดียว แต่กรณีถ่านเมนบอร์ดหมด (ทำไมไม่เปลี่ยนซะที) เวลาจะเปิดเครื่องเราก็จะเจอประโยคที่บอกประมาณว่า ให้กด F1 แล้วไปต่อ หรือยังไม่อยากไปต่อก็กด DEL ไปตั้งค่าซะ ผมชอบกด DEL แล้วไปตั้งค่าก่อนเข้าโอเอส แล้วผมก็ตั้งเวลาปัจจุบันจากนาฬิกาข้อมืออันเที่ยงตรงของเรา แต่พอเข้าไปในโอเอส ก็จะสับสนว่าเมื่อกี้ตั้งตรงแล้วนิ๊ ซึ่งปัญหานี้มันเกิดจากที่เกริ่นไว้ด้านบนนั่นเองครับ
การจัดการให้ ทั้งสองเข้าใจตรงกันเป็นคนชาติเดียวกันนั้นก็ให้เข้าไปจัดการที่แฟ้ม
/etc/default/rcS
แล้วแก้ไขบรรทัด UTC=yes ให้เป็น UTC=no ซะก็เข้าใจตรงกันแล้ว
Subscribe to:
Posts (Atom)