Welcome to Sysnet Board คู่มือ การใช้งานอุปกรณ์ Network. Please log in or sign up.
สมาชิกทั้งหมด
17,949
กระทู้ทั้งหมด
9,933
หัวข้อทั้งหมด
4,627

  • การตั้งเวลา Reboot อุปกรณ์ Access Point ของ UBiQUiTi โดยอัตโนมัติ
    เริ่มโดย Mr.Zenith
    Read 19,574 times
0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

 

 
สืบเนื่องจากกระทู้ https://www.sysnetcenter.com/board/index.php/topic,2353.msg5634.html#msg5634 ที่มีเพื่อนสมาชิกต้องการตั้งเวลาให้อุปกรณ์ UBiQUiTi ทำการรีบูตตัวเองเป็นประจำทุกวัน จึงเป็นที่มาของบทความนี้นะครับ แต่โดยส่วนตัวผมเอง เปิดใช้งาน Access Point ของ UBiQUiTi มากว่า 3 เดือนแล้ว ไม่เคยปิด ไม่เคยรีบูต ก็ยังไม่พบปัญหาใด ๆ กับการใช้งานนะครับ

ทั้งนี้ต้องออกตัวก่อนนะครับว่าผมเองก็เป็นลูกค้าของทางร้าน มิได้มีส่วนได้ส่วนเสียใด ๆ กับทางร้าน ที่เขียนบทความนี้ขึ้นมาเพียงเพื่อแบ่งปันความรู้กับเพื่อนสมาชิกเท่านั้นครับ

ข้อควรทราบ
- ผู้เขียนได้ทดสอบกับอุปกรณ์ Picostation M2HP ภายใต้เฟิร์มแวร์ airOS เวอร์ชั่น 5.5.6 แล้วสามารถใช้งานได้เป็นปกติ โดยขั้นตอนตามคู่มือนี้ใช้งานได้กับ airOS Version 5.xx เท่านั้น
- เนื่องจากขั้นตอนดังปรากฎในคู่มือนี้ จำเป็นต้องใช้ทักษะด้าน Linux/UNIX Command พอประมาณ​ จึงเหมาะสำหรับผู้ใช้งานระดับกลาง-สูงขึ้นไป
- หากท่านดำเนินการตามขั้นตอนดังที่ปรากฎต่อไปนี้ ถือว่าท่านได้ยอมรับความเสี่ยงที่จะดำเนินการด้วยตนเองแล้ว ผู้เขียนไม่สามารถชดใช้ความเสียหายใด ๆ อันจะเกิดแก่อุปกรณ์ หรือการทำงานบนระบบเครือข่ายของท่านได้

สิ่งที่จำเป็นต้องใช้
- โปรแกรม PuTTY (สำหรับ Windows) ดาวน์โหลดได้ที่ http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
- โปรแกรม WinSCP (สำหรับ Windows) ดาวน์โหลดได้ที่ http://winscp.net/download/winscp550setup.exe

สิ่งที่ต้องตรวจสอบก่อนดำเนินการ
1. วันที่และเวลาของอุปกรณ์ว่าตรงและเป็นปัจจุบันหรือไม่ โดย login เข้าไปยัง Web Configuration ของ UBiQUiTi ที่เมนู Main สังเกตตรง Date ครับ
หากวันที่และเวลาไม่ตรง แล้วตัว UBiQUiTi สามารถออกสู่อินเตอร์เน็ตได้เอง ให้ไปที่เมนู Services -> ตรง NTP Client ติ๊กเลือก Enable แล้วใส่ค่า 202.28.18.72 กดปุ่ม Change และ Save Setting ให้เรียบร้อย แล้วกลับไปดูที่หน้า Main อีกทีว่าวันที่และเวลาตรงหรือยัง หากตรงแล้ว ค่อยดำเนินการต่อ

2. ที่เมนู Services -> ตรง SSH Server ตรวจสอบว่าต้องติ๊กเลือก SSH Server Enable และ Password Authentication Enable ให้เรียบร้อย ส่วนตรง Server Port ใส่เป็น Default 22 ก็ได้ครับ / หากอุปกรณ์ไม่เคย Enable SSH Server ไว้ก่อน แนะนำให้ตั้งค่าให้เรียบร้อย แล้วรีบูตอุปกรณ์ 1 ครั้ง

เมื่อพร้อมแล้ว ก็เริ่มกันเลยครับ

1. เปิดโปรแกรม PuTTY ขึ้นมา กรอกข้อมูลดังนี้
- Host Name (or IP Address) ให้ใส่ IP ของอุปกรณ์ UBiQUiTi
- Port เป็น 22
- Connection Type เป็น SSH
เมื่อเสร็จสิ้น กดปุ่ม Open มุมขวาล่าง



2. หน้าจอถัดมา หากยังไม่เคยเข้าใช้งาน SSH กับตัวอุปกรณ์มาก่อน จะมีการถามว่าต้องการเก็บ Host Key หรือไม่ ให้ตอบ Yes



3. ระบบจะขึ้นหน้าจอพื้นดำ ถาม login as: ให้เรากรอก username ที่เราใช้ในการเข้าคอนฟิกตัวอุปกรณ์ เช่น ในเคสนี้เป็น admin แล้วกด <Enter>
จากนั้นระบบจะถาม Password ให้กรอก Password ตามเข้าไป ซึ่งระหว่างกรอก Password จะไม่มีการบ่งบอกที่หน้าจอนะครับว่า เรากรอกไปกี่ตัวแล้ว ให้พิมพ์ให้เรียบร้อยแล้วกด <Enter> อีกครั้ง

หากเข้าสู่ระบบเรียบร้อย จะมีข้อความ BusyBox v บลาๆ ปรากฎดังภาพ



4. ทีนี้ให้เราพิมพ์คำสั่ง
cd /var/etc/persistent/
แล้วกด <Enter>

5. จากนั้นพิมพ์คำสั่ง
wget http://community.ubnt.com/ubnt/attachments/ubnt/airOS/28429/1/airos5-crond.tar
แล้วกด <Enter> --- คำสั่งนี้จะเป็นการดาวน์โหลดไฟล์ที่จำเป็นเข้ามานะครับ เมื่อครบ 100% แล้ว เราจึงจะสามารถพิมพ์คำสั่งใหม่ได้

6. เมื่อดาวน์โหลด 100% ให้พิมพ์คำสั่งต่อไป
tar xvf airos5-crond.tar
แล้วกด <Enter> จะมีผลลัพธ์ปรากฎขึ้นดังตัวอย่างข้อความสีแดง
อ้างถึง./etc/
./etc/crontabs/
./etc/crontabs/ubnt
./etc/crond.conf
./rc.prestart

7. จากนั้นให้เราพิมพ์คำสั่งต่อไปนี้
./rc.prestart
แล้วกด <Enter>



เมื่อเสร็จสิ้นตามขั้นตอนที่ 7 ให้เปิดหน้า PuTTY ค้างไว้ก่อนไม่ต้องปิด
แต่ให้ไปเปิดโปรแกรม WinSCP เพิ่มขึ้นมา กรอกข้อมูลให้เรียบร้อย
File Protocol: SCP
Host name: ใส่ IP ของ Ubiquiti
Port number: 22
User name/Password: ใส่ผู้ใช้และรหัสผ่านอันเดียวกันกับที่เราใช้เข้า config อุปกรณ์
เมื่อเรียบร้อยกด Login


หากมีหน้าต่างขึ้นถามตามภาพ ให้ตอบ Yes/OK ได้ทันที


เมื่อเข้าโปรแกรมมาเรียบร้อยแล้ว รายการไฟล์จะแบ่งเป็น 2 ฝั่ง
- ฝั่งซ้าย ไฟล์ในเครื่องคอมพิวเตอร์ของเรา
- ฝั่งขวา ไฟล์บนอุปกรณ์ Ubiquiti

สังเกตที่ฝั่งขวา จะมีโฟลเดอร์ชื่อ etc อยู่ในรายการ ให้ดับเบิ้ลคลิกเข้าไปในโฟลเดอร์ etc


จากนั้นจะเจอโฟลเดอร์ crontabs ให้ดับเบิ้ลคลิกเข้าไปเช่นกัน


เมื่อเข้ามาด้านในโฟลเดอร์จะเห็นไฟล์ ubnt อยู่ ให้ลากกลับมาที่เครื่องของเราทางฝั่งซ้าย จะมีหน้าต่างถามให้กดปุ่ม Copy

จากนั้นเราก็คลิกขวาไฟล์ ubnt ในคอมพิวเตอร์ของเราเลือก Open With -> Notepad

เพิ่มบรรทัดใหม่ที่ล่างสุด ให้เป็นไปตามบรรทัดแดง
ค่าแรกตัว นาที (ค่าที่ใส่ได้ 0 ถึง 59) ตัวอย่างคือ 0 หมายถึง 0 นาที
ค่าตัวที่สอง ชั่วโมง (ค่าที่ใส่ได้ 0 ถึง 23) ตัวอย่างคือ 3 หมายถึง 3 นาฬิกา
ค่าตัวที่สาม วันที่ (ค่าที่ใส่ได้ 1 ถึง 31) ตัวอย่างคือ * หมายถึง ทุกวัน
ค่าตัวที่สี่ เดือน (ค่าที่ใส่ได้คือ 1 ถึง 12) ตัวอย่างคือ * หมายถึง ทุกเดือน
ค่าตัวที่ห้า วันของสัปดาห์ (ค่าที่ใส่ได้คือ 0 ถึง 6 ไล่ตามลำดับ เมื่อ 0 หมายถึงวันอาทิตย์ และ 6 หมายถึงวันเสาร์) ตัวอย่างคือ * หมายถึง ทุกวัน โดยไม่สนว่าจะเป็นวันอะไร
ค่าตัวที่หก คือคำสั่งที่ต้องการให้อุปกรณ์ทำ ตัวอย่างคือ /sbin/reboot หมายถึงสั่งรีบูต

ระหว่างค่าแต่ละตัว ต้องมีเว้นวรรคหนึ่งช่องเสมอ

ตัวอย่างคือ รีบูตทุกวันเวลาสามนาฬิกา
อ้างถึง#
# /etc/persistent/etc/crontabs/ubnt
# This is the ubnt user's crontab
#

#         File Format                  field         values
# +----------------------------------- minute         0-59
# |    +------------------------------ hour           0-23
# |    |    +------------------------- day of month   1-31
# |    |    |    +-------------------- month          1-12
# |    |    |    |    +--------------- weekday         0-6
# |    |    |    |    |    +---------- command
# |    |    |    |    |    |
# */5  *    *    *    *    /do/something/here
0 3 * * * /sbin/reboot

หากต้องการให้รีบูตทุก 2 วัน เวลา 9:35 ก็จะเป็น
35 9 */2 * * /sbin/reboot

หากต้องการให้รีบูตทุก 3 วัน เวลา 13:46 ก็จะเป็น
46 13 */3 * * /sbin/reboot

หากต้องการให้รีบูตทุกวันที่ 1 ของเดือน เวลา 5:02 ก็จะเป็น
2 5 1 * * /sbin/reboot

หากต้องการให้รีบูตทุกวันจันทร์ของสัปดาห์ เวลา 1:45 ก็จะเป็น
45 1 * * 1 /sbin/reboot

เป็นต้น

เมื่อแก้ไขไฟล์ให้เป็นไปตามตัวอย่างที่แสดงข้างต้นแล้ว ก็ Save ให้เรียบร้อย และปิดโปรแกรม Notepad ทั้งนี้หาก username ที่ท่านเข้า config อุปกรณ์ไม่ใช่ ubnt ท่านต้อง rename ไฟล์นี้เป็น username ของท่านด้วย เช่น ของผมใช้ username เป็น admin ก็ต้อง rename ไฟล์ ubnt เป็น admin

กลับไปที่โปรแกรม WinSCP อีกครั้ง กดปุ่ม Refresh ที่ฝั่งซ้าย (ไอคอนแผ่นกระดาษ ลูกศรสองข้าง)


จะเห็นไฟล์ ubnt  หรือ admin หรือชื่ออื่นๆ ตามแต่ username ของท่าน ให้คลิกลากไปปล่อยที่ฝั่งขวา จะปรากฎหน้าต่างถามให้ตอบ Copy หรือในบางเคสที่ไฟล์เป็นชื่อเดิม ubnt จะถามว่าทับไฟล์หรือไม่ ให้ตอบ Overwrite หรือ Replace


เมื่ออัพโหลดไฟล์กลับขึ้นอุปกรณ์เรียบร้อยแล้ว ให้สลับกลับไปที่หน้าโปรแกรม PuTTY
พิมพ์คำสั่ง
save
และกด <Enter>

จากนั้นพิมพ์คำสั่ง
/usr/etc/init.d/plugin start crond
และกด <Enter>

เมื่อเสร็จสิ้นขั้นตอนทั้งหมด ให้พิมพ์ reboot และกด <Enter> และปิดหน้าจอโปรแกรม PuTTY ได้เลย

เมื่ออุปกรณ์กลับมาพร้อมใช้งานแล้ว ให้เปิดโปรแกรม PuTTY ใหม่อีกครั้ง เชื่อมต่อกับอุปกรณ์ใหม่อีกครั้งตามขั้นตอนที่ 1-2-3 ให้เรียบร้อย
จากนั้นพิมพ์คำสั่ง
ps|grep cron

หากปรากฎผลลัพธ์ดังบรรทัดแดงแสดงว่า service ทำงานแล้ว
อ้างถึงXM.v5.5.6# ps|grep cron
 907 admin     1976 S    /usr/bin/crond

จากนั้นพิมพ์คำสั่ง (อาจต้องเปลี่ยน admin เป็น username ของท่านเอง ถ้าท่านใช้ไม่เหมือนผม)
cat /etc/crontabs/admin

หากผลลัพธ์บรรทัดสุดท้ายเป็นในรูปแบบ
0 3 * * 0 /sbin/reboot
ตามที่ท่านตั้งไว้ แสดงว่าถูกต้อง

เป็นอันเสร็จสิ้นขั้นตอนทั้งหมด หากวันที่และเวลาของอุปกรณ์เที่ยงตรง เมื่อถึงเวลาที่กำหนดอุปกรณ์ก็ควรจะทำหน้าที่ reboot ตามที่ท่านต้องการโดยอัตโนมัติ

เกร็ด
หากมีการแก้ไขไฟล์ ubnt,admin,...etc. เพื่อปรับเปลี่ยนเวลาหรือวันที่ที่ต้องการให้ reboot ทุกครั้ง ต้องพิมพ์คำสั่ง save และ reboot อุปกรณ์ผ่านโปรแกรม PuTTY ทุกครั้ง

ไม่แน่ใจเหมือนกันว่า User จะอ่านที่เขียนมาเข้าใจไหมนะครับ เพราะผมค่อนข้างรีบเขียนให้ ยังไงคุณยอดลองทำตามแล้ว rewrite ใหม่ดูก็ได้ครับ