Topic List
ปัญหาการลืม password เป็นเรื่องปกติ เนื่องจากเราชักจะมี password มากเกินไปเสียแล้ว และยังหาวิธีการดี ๆ ที่มีความปลอดภัยในการจำรหัสไม่ได้เสียที จะจดไว้ในสมุด ก็มีคนบอกว่าห้าม จะให้จำ ก็จำไม่หมด
เอาเป็นว่า กรณีของ MySql หากเราลืมรหัสของ root ก็เข้าไป reset หรือ ตั้งรหัสใหม่ก็แล้วกัน ขอบันทึกวิธีการ reset password ไว้กันลืม (ก่อนจะลืมวิธีการ reset password อีก)
วิธีการ reset password ของ MySql คือ
หยุดการทำงานของ mysql ก่อน
# /etc/init.d/mysql stop
Start MySQL เป็น save mode. โดยคำสั่ง
# mysqld_safe –skip-grant-tables &
Login MySQL โดย user root
# mysql -u root
Update password root (ใสรหัสใหม่แทน NEW PASSWORD)
mysql> use mysql; mysql> update user set password=PASSWORD(”NEW PASSWORD”) where user=’root’; mysql> flush privileges; mysql> quit;
Restart service ของ mysql ก็เป็นอันว่าเรียบร้อย
#/etc/init.d/mysql restart
แล้วลองเข้าใหม่ดูครับ
# mysql -u root -p
ที่มา SnappyTux
อาจจะต้องเขียน bash scripting มากขึ้น หลังจากต้องดูแล server เอง เลยขอเก็บคู่มือ - reference ของการเขียน bash scripting มาเก็บไว้เพื่อศึกษาในภายหลัง
อยู่ที่ Advanced Bash-Scripting Guide - An in-depth exploration of the art of shell scripting
เหตุเริ่มเกิดมาได้สัก 2-3 วันแล้ว แรก ๆ ก็เกิดกับบางเว็บ เช่น www.psu.ac.th แล้วก็เริ่มหลายเว็บมากขึ้น จนมาวันนี้ ping ไปทุกเว็บก็เป็นเหมือนกันหมด แม้กระทั่ง google.com
อาการ : เวลา ssh ไปที่ Server@CAT-HY แล้ว ping ไปที่ google.com จะเกิด error ดังนี้
ping: unknown host google.com
ก็พยายามหาทางดู ลอง reboot server แล้วก็ไม่หาย (เสียดายอุตส่าห์เปิดมาตั้ง 30 วันแล้ว) ลอง ssh เข้าไปทุก vps แล้ว ping ดู ก็เป็นเหมือนกัน เลยคิดว่าน่าจะมีปัญหาที่ proxmox-ve เลย ssh ไปที่ proxmox-ve แล้ว ping ดู ก็มีอาการเหมือนกัน
เลยตั้งเป้าว่า น่าจะเกิดจาก DNS ของ CAT (202.129.27.134 , 202.129.27.135) มีปัญหา คิดว่าพรุ่งนี้จะโทรไปหา CAT ให้เขาเช็คดูเสียหน่อยว่ามีปัญหาอะไรบ้างไหม?
ระหว่างนั้นก็คิดว่า หากเราเปลี่ยน DNS ไปใช้ของที่อื่น จะเกิดอะไรขึ้นบ้าง ก็เลยลองเสี่ยงดู โดยเพิ่ม nameserver 208.67.222.222 ซี่งเป็นของ OpenDNS เข้าไปใน /etc/resolv.conf โดยการแก้ไขไฟล์ /etc/resolv.conf เป็น/เพิ่ม
nameserver 208.67.222.222 nameserver 208.67.220.220
It's work!!!!!!
ขอบคุณ OpenDNS แล้วพรุ่งนี้ค่อยโทรไปสอบถาม CAT-HY อีกที.
ปล. Thank for idea from configuring DNS
- Check what is the new hard disk device name with "fdisk -l", it shoul be something like /dev/sdb
- Create a partition on it, supose the disk is /dev/sdb: "echo -ne "n\np\n1\n\n\nw\n" | fdisk /dev/sdb1"
- Make a filesystem on the partition: mkfs.ext3 /dev/sdb1
- Create a directory where to mount the partition: mkdir /newdirectory
- Edit fstab an add at the end of the file:
/dev/sdb1 /newdirectory ext3 defaults 0 0
- now mount:
mount -a
ps. echo -ne part? is
- n -> new partition
- p -> primary partition
- 1 -> number of the partition
- just enter, here you should enter the first block
- just enter, here you should enter the last block
- write the partition table to the disk.
มีการรวบรวมคำสั่ง(เครื่องมือ)สำหรับผู้ดูแล server/website ควรรู้เอาไว้ พร้อมทั้งรายละเอียดและตัวอย่างการใช้งาน บางคำสั่งก็สามารถใช้งานได้เลย บางคำสั่งต้องติดตั้งเพิ่มเติม
คำสั่งทั้งหมดคือ
- top - Process Activity Command
- vmstat - System Activity, Hardware and System Information
- w - Find Out Who Is Logged on And What They Are Doing
- uptime - Tell How Long The System Has Been Running
- ps - Displays The Processes
- free - Memory Usage
- iostat - Average CPU Load, Disk Activity
- sar - Collect and Report System Activity
- mpstat - Multiprocessor Usage
- pmap - Process Memory Usage
- netstat - Network Statistics
- ss - Network Statistics
- iptraf - Real-time Network Statistics
- tcpdump - Detailed Network Traffic Analysis
- strace - System Calls
- /Proc file system - Various Kernel Statistics
- Nagios - Server And Network Monitoring
- Cacti - Web-based Monitoring Tool
- KDE System Guard - Real-time Systems Reporting and Graphing
- Gnome System Monitor - Real-time Systems Reporting and Graphing
ดูรายละเอียดการใช้ได้จากที่มานะครับ
ที่มา 20 Linux System Monitoring Tools Every SysAdmin Should Know
เพื่อป้องกันปัญหาโดน hack จากต่างประเทศ มีคำแนะนำให้ block การเข้าถึงจากต่างประเทศด้วยการ block IP จากต่างประเทศไม่ให้เข้าใช้บริการบางอย่างเช่น FTP , SSH
วิธีการดูได้จาก ThaiHostTalk นะครับ
ขออนุญาตคุณ icez และ ems นำมาเก็บไว้ก่อนนะครับ แล้วจะหาเวลามานั่งศึกษาดูอีกที
เกิดความสงสัยว่าใครกำลังล็อกอินในเครื่องเราบ้าง ลองตรวจด้วยคำสั่ง top แล้วเห็น 5 users ก็เลยอยากรู้
มีคำสั่งสำหรับตรวสอบเช่น
- finger ... แสดงรายชื่อทุกคนที่กำลัง login อยู่ในปัจจุบัน
- who ... เหมือนกับคำสั่ง finger
- last ... ดูประวัติการ login/logout
- lastb ... ดูรายการ bad / failed login ที่เข้ามาในระบบ
- lastlog ... ดูเวลาการ login ครั้งล่าสุดของการ login เข้าสู่ระบบ
ผมทดลองเปิดสถานีวิทยุออนไลน์ ซึ่งมีหลายสถานี (port) และต้องการให้มันเปิดแบบอัตโนมัติในตอนเปิด server ก็ไปเจอวิธีการและ code ในเว็บนี้
ลองทำตามโค๊ดข้างล่าง
#!/bin/bash # # chkconfig: 345 91 35 # description: Starts and stops sc_serv.<br /> # You know, the mp3 streaming thang. # # Version 1.3 (nov 4 2001) # Now with more revisions! System now checks for pid file before cat # to display so that we receive no error messages. System also displays # pids as we are killing old processes. Profanity was removed from the<br /> # startup messages. Tests for a pid file before reporting success. Displays # the relay server name when we start the daemon up, so that we know # which servers are getting booted. Pushed the success marker over to the<br /> # right and added [] because I am just a slave to fashion. # # Version 1.2 (nov 3 2001) # Same exact shit, but runs as nobody for security reasons. Just # in case we are worried about buffer overflows or whatnot. # # Version 1.1 (nov 3 2001) # Starts stops and restarts jobs. Also checks for existing daemons # before calling a start, and exits without starting new ones. This # prevents you from being a dumbass and starting multiple listeners # on the same port. I would suggest using the restart command # in these cases. Also creates a shoutcast.pid file that can be used # to discover all of the (many) pids used by shoutcast when running. # # Version 1.0 (nov 3 2001)<br /> # Starts and stops successfully.<br /> # Kills old jobs on start command. Dirty, but<br /> # does the job well enough. Tested functional on # mandrake version 8.1 but should work on redhat<br /> # or any other distro that supports a standard<br /> # sysv startup script. # # Instructions for use. # 1: untargzip shoutcast into the directory of your choosing # 2: copy sc_serv into the /usr/sbin directory<br /> # 3: Create the directory /etc/shoutcast # 4: copy the shoutcast.conf file into your /etc/shoutcast dir. # 5: Edit the shoutcast.conf file to match your needs. # 6: Make as many more conf files as needed to support<br /> # multiple streams. Be sure to edit these files so that # you are not starting multiple shoutcast servers that # are either listening or broadcasting on the same port. # 7: Copy this file into the /etc/rc.d/init.d directory # 8: chmod this file +x (chmod ug+x /etc/rc.d/init.d/shoutcast) # 9: run chkconfig --add shoutcast from the /etc/rc.d/init.d dir. # 10:Run /etc/rc.d/init.d/shoutcast start<br /> # 11:Drink a beer, or light one up, and enjoy the tunes. # # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. This line may cause an error on incompatible # distributions. Remove it if necessary. Also remove if the startup always # fails for no apparent reason. [[ ${NETWORKING} = "no" ]] && exit 0<br /> <br /> <br /> stop (){ <a class="hashtag" href="/tags/First">#First</a> we want to kill the original servers, so we don't get errors. echo "Killing old shoutcast servers." for oldpid in `ps -A | grep sc_serv | cut -c 0-6`; do kill -9 $oldpid if [[ $1 == "-v" ]] then echo $oldpid fi done rm -f /var/run/shoutcast.pid }<br /> <br /> <br /> start (){ <a class="hashtag" href="/tags/Now">#Now</a> we can start the servers up. if [[ $1 == "-v" ]]<br /> then echo "Starting up the new shoutcast servers. Starting..." fi <br /> servcount=`expr 0` for cfile in `ls /etc/shoutcast`; do echo -n $cfile echo -n " -> " grep ^RelayServer /etc/shoutcast/$cfile # This is the line where we actually run the shoutcast program! <a class="hashtag" href="/tags/sudo">#sudo</a> -u nobody /usr/bin/sc_serv /etc/shoutcast/$cfile > /dev/null & /usr/bin/sc_serv /etc/shoutcast/$cfile > /dev/null & let servcount=servcount+1 done <a class="hashtag" href="/tags/Create">#Create</a> the pid file... ps -A | grep sc_serv | cut -c 0-6 > /var/run/shoutcast.pid <a class="hashtag" href="/tags/Done">#Done</a> now! echo "Started $servcount servers." }<br /> <br /> <br /> case "$1" in start) if [[ ! -e /var/run/shoutcast.pid ]] then start $2 if [[ -e /var/run/shoutcast.pid ]]<br /> then echo "Startup [SUCCESS]" fi else if [[ $2 == "-v" ]] then echo "Shoutcast is already running these processes:" #Toldja! Checks before displaying pid file. if [[ -e /var/run/shoutcast.pid ]] then cat /var/run/shoutcast.pid fi echo "Try calling shoutcast restart in order to kill old processes." else echo "SC_SERV is already running. Try calling shoutcast restart." fi echo "Startup [FAILED]" fi ;; restart) stop $2 if [[ $2 == "-v" ]] then echo "Waiting for the old servers to die..." fi sleep 4 start $2 if [[ -e /var/run/shoutcast.pid ]]<br /> then echo "Startup [SUCCESS]" fi ;; stop) if [[ -e /var/run/shoutcast.pid ]]; then stop $2 echo "Shoutcast shutdown [SUCCESS]" else echo "There are no registered shoutcast servers running right now. Attempting to kill anyways." stop $2 fi ;; *) echo "Usage: shoutcast (start|stop|restart) [-v]" esac
ขั้นตอนการติดตั้ง
- สร้างไฟล์ /etc/init.d/shoutcast แล้วเปลี่ยน attr เป็น 755
- copy ไฟล์ sc_serv (ที่ดาวน์โหลดมา) ไปไว้ที่ /usr/bin
- สร้างโฟล์เดอร์ /etc/shoutcast แล้วนำไฟล์คอนฟิกมาใส่ไว้ในนี้ จะกี่ไฟล์ก็ได้ ตอนเปิดเครื่องมันจะ start ให้หมด
ผมซื้อฮาร์ดดิสใหม่มาติดตั้งใน Ubuntu วิธีการติดตั้งดังนี้
1.ใช้ fdisk และ make.ext3 เพื่อกำหนดพาร์ทิชั่นให้กับฮาร์ดิสตัวใหม่
2.ทำการแบ่งพาร์ทิชั่นใหม่ (fdisk the partiion) บนฮาร์ดดินตัวใหม่โดยใช้โปรแกรม fdisk ตามขั้นตอนด้านล่าง
fdisk /dev/sdb n p 1 enter enter w
ระวัง หากพลาดจะทำให้ข้อมูลสูญหายทั้งหมดได้นะ
3.สร้าง ext3 filesystem ด้วยคำสั่ง
mkfs.ext3 /dev/sdb1
แล้วฮาร์ดดิสตัวใหม่ก็พร้อมที่จะถูก mount
ปล.อย่าลืมแก้ไขค่า /etc/fstab เพื่อเพิ่ม mount point ให้โดยอัตโนมัติหลังจากเปิดเครื่องซะด้วย
อ้างอิง
ผมต้องการสำรองไฟล์ข้อมูลของ Express Accounting ทุกวัน โดยให้ใช้ชื่อวันเป็นชื่อไฟล์สำรอง
cd /home
สร้างไฟล์ /home/.backupdata ให้มีคำสั่งดังนี้
#!/bin/bash DATE=`date +%a` # Grab the day name of today TARFILE=/tmp/backup-$DATE.tar.gz # Use it to create a filename tar cvpfz $TARFILE Sharing > /tmp/backup-$DATE.log 2>&1
กำหนดสิทธิ์ให้เป็น rwxr-xr-x
chmod 755 .backupdata
กำหนดให้ crontab ทำการสำรองข้อมูลทุกวันเวลา 12.30 น. (เวลาพักเที่ยง)
crontab -e
กำหนดเวลาเป็น
30 12 * * *