การประเมินโครงการประกันคุณภาพภายในสถานศึกษาโรงเรียนนาเชือกพิทยาสรรค์ สำนักงานเขตพื้นที่การศึกษามัธยมศึกษา เขต 26 - 30 มี.ค. 63
ติดตั้งระบบเว็บแบบเพิ่มลด Server ได้ ร่วมกับ MySQL Cluster - 2 มิ.ย. 63
HAProxy Loadbalancing - 29 พ.ค. 63
MySQL innoDB Cluster Guide - 29 พ.ค. 63
เพิ่มพื้นที่ Volume ใน DigitalOcean - 10 พ.ค. 63
ติดตั้ง Unifi Controller บน DigitalOcean - 6 พ.ค. 63
ติดตั้ง Laravel บน VestaCP - 22 ธ.ค. 62
แก้ไข password สำหรับผู้ใช้ pi ใน Raspberry Pi - 17 ต.ค. 62
FullSync โปรแกรมสำรองข้อมูลไปไว้ที่ไหนก็ได้แบบอัตโนมัติ - 12 ต.ค. 62
Web application บน Cluster - 21 ก.ย. 62
# nano -w autobackup.sh
จากนั้นทำการกำหนด directory ให้กับไฟล์ที่จะสำรองข้อมูล โดยเราจะทำการสำรองข้อมูลเป็น 7 วัน คือวันจันทร์-อาทิตย์ โดยหากครบรอบก็จะวนทับไฟล์เดิม ดังนั้นระบบเราจะมีไฟล์สำรองเพียง 7 วัน หรือหากอยากสำรองไฟล์เป็นแต่ละวันก็ได้ โดยปรับให้เหมาะสมกับบริบทของท่าน
และให้ตรวจสอบว่า หากยังไม่มี directory ก็ให้สร้างขึ้นมาใหม่ (แต่เราจะต้องมี diretory ชื่อ /backup ในระบบก่อน ถ้าไม่มีก็ใช้คำสั่ง mkdir /backup เพื่อสร้างขึ้นมาใหม่)
#!/bin/sh NOW=$(date +"%u") DIR="/backup/$NOW" if [ ! -d $DIR ]; then mkdir $DIR fi
ขั้นตอนต่อไปคือการสร้างไฟล์สำรอง โดยใช้คำสั่ง tar ดึงไฟล์ที่อยู่ใน directory ที่เราต้องการสำรอง มาบีบอัดไว้ในไฟล์เดียว เพื่อให้ง่ายต่อการใช้งาน โดยในตัวอย่างจะเป็นการสำรองไฟล์ใน /home/thai/domains/thai.ac ทั้งหมด ไปไว้ในไฟล์ /backup/$NOW/$NOW.backup.tar.gz โดย $NOW จะหมายถึงวันที่เรา backup ข้อมูล
GZFILE="$DIR/$NOW.backup.tar.gz" tar -czvf $GZFILE /home/thai/domains/thai.ac >/dev/null 2>&1
เมื่อเสร็จขั้นตอนแล้วเราจะได้ไฟล์ .tar.gz แล้ว ต่อไปเราจะส่งไฟล์นี้ไปยัง Server อีกตัว ที่เป็น Linux เช่นกัน โดย Server ปลายทางนี้ จะต้องมี ssh และเราต้องมี user สำหรับเข้า ssh โดยในตัวอย่างจะใช้รหัส root ใน server ปลายทางเพื่อส่งข้อมูล
แต่ก่อนที่จะส่งข้อมูลผ่าน ssh ไป server ปลายทางได้ จะต้องทำการสร้าง ssh key ให้กับ server ก่อน เพื่อที่เราจะได้ใช้คำสั่งส่งข้อมูลไป โดยที่ไม่ต้องใส่รหัสผ่านของ ssh ใน server ปลายทาง ไม่ใช่นั้นแล้ว shell script เราจะไม่ทำงานแบบอัตโนมัติ โดยขั้นตอนการสร้าง ssh key มีดังนี้
ที่ server ต้นทาง (ที่มีไฟล์ tar.gz) ใช้คำสั่ง
# ssh-keygen -t rsa
จากนั้นให้ทำการกดปุ่ม Enter 3 ครั้งตามตัวอย่างด้านล่าง
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): [กดปุ่ม Enter] Enter passphrase (empty for no passphrase): [กดปุ่ม Enter] Enter same passphrase again: [กดปุ่ม Enter] Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 53:b7:3a:5b:39:22:78:35:e7:cf:44:64:cd:52:d4:a1 [email protected] The key's randomart image is: +--[ RSA 2048]----+ | o=| | .+.| | . .E+ o| | . . + . | | S o o . | | . o = o | | . o + = . | | . . = = | | . o | +-----------------+
เมื่อเสร็จแล้ว ssh key จะถูกสร้างและเก็บไว้ที่ /root/.ssh/id_rsa.pub จากนั้นเราจะส่ง ssh key ดังกล่าวไปที่ server ปลายทางด้วยคำสั่ง (โดย 123.123.123.123 คือ ip ของเครื่อง server ปลายทาง และ root คือชื่อ username ที่เรามีใน server ปลายทาง
# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
เมื่อใช้คำสั่งแล้วจะได้หน้าจอดังนี้ ให้เราทำการใส่รหัสผ่าน root ของ server ปลายทาง
เมื่อใส่เรียบร้อยแล้ว ก็เสร็จสิ้นขั้นตอนการสร้าง ssh key จากนั้นให้ทำการทดสอบโดยใช้คำสั่ง# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] The authenticity of host '123.123.123.123 (123.123.123.123)' can't be established. RSA key fingerprint is 6f:ad:07:15:65:bf:54:a6:8c:5f:c4:3b:99:e5:2d:34. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '82.165.133.65' (RSA) to the list of known hosts. [email protected]'s password: [ใส่รหัสผ่าน root ของ server ปลายทาง ] Now try logging into the machine, with "ssh '[email protected]'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
เราก็จะสามารถเข้าใช้งาน ssh ปลายทางได้โดยไม่ต้องใส่รหัสผ่าน# ssh [email protected]
ขั้นตอนการส่งไฟล์ข้าม Server เมื่อเราทำการสร้าง ssh key ปลายทางเสร็จเรียบร้อย ขั้นตอนต่อไปเราจะใช้ rsync เพื่อส่งข้อมูลที่เราสำรองไว้ ไปยัง server ปลายทางที่ directory ชื่อ /backupserver# ssh [email protected] Last login: Wed Dec 18 13:00:57 2017 from 121.121.121.121 [root@server2 ~]#
เสร็จสิ้นขั้นตอนการสร้างไฟล์ autobackup.sh ซึ่งสรุปข้อมูลในไฟล์ได้ดังนี้rsync -av $DIR -e ssh [email protected]:/backupserver/
การออกจาก nano ใช้การกดปุ่ม CTRL + O แล้ว Enter เพื่อบันทึก แล้วกด CRTL + X แล้ว Enter เพื่อออกจาก nano#!/bin/sh NOW=$(date +"%u") DIR="/backup/$NOW" if [ ! -d $DIR ]; then mkdir $DIR fi echo "Backing up file ..." GZFILE="$DIR/$NOW.backup.tar.gz" tar -czvf $GZFILE /home/thai/domains/thai.ac >/dev/null 2>&1 echo "Backup file complete." echo "Sending file ..." rsync -av $DIR -e ssh [email protected]:/backupserver/ echo "Send file complete.
# chmod +x autobackup.sh
จากนั้นเราจะพบกับการทำงานที่ได้ตั้งค่าไว้อยู่ก่อนแล้ว เช่น# crontab -e
ให้ทำการกดปุ่ม i หนึ่งครั้ง เพื่อทำการ insert ข้อมูลเข้าไป (ตัว crontab นี้จะใช้คำสั่ง vi ในการแก้ไขข้อมูล) โดยเมื่อกด i แล้วเราจะเลือน cursor ไปสุดท้าย แล้วกด Enter เพื่อขึ้นบันทัดใหม่ แล้วทำการใส่คำสั่งดังตัวอย่างนี้*/15 * * * * /usr/sbin/ntpdate -u clock.nectec.or.th >/dev/null 2>&1 0 5 * * 0 /usr/local/sysbk/sysbk -q
*/15 * * * * /usr/sbin/ntpdate -u clock.nectec.or.th >/dev/null 2>&1
0 5 * * 0 /usr/local/sysbk/sysbk -q
0 2 * * * /root/autobackup.sh
คือการสั่งให้ไฟล์ autobackup.sh ที่อยู่ในไดเร็คทอรี่ /root ทำงานในนาทีที่ 0 ของเวลา 2 นาฬิกา (หรือเวลา 02.00) ของทุกวัน จากนั้นให้กดปุ่ม ESC แล้วตามด้วย SHIFT + : จากนั้นกด wq! แล้วตามด้วย Enter เพื่อเป็นการบันทึกและปิด crontab จบกระบวนการ การทำระบบสำรองข้อมูลข้าม Server แบบอัตโนมัติโดยใช้ shell script ต่อไปเมื่อถืงเวลาที่เรากำหนดไว้ ระบบก็จะทำการสำรองข้อมูล และส่งไปที่ server ปลายทางให้เองอัตโนมัต หรือหากอยากลองใช้งานทันที ก็สามารถใช้คำสั่ง
แล้วรอจนการทำงานเสร็จสิ้น โดยเราสามารถไปตรวจสอบที่ server ปลายทางดูได้ว่ามีไฟล์สำรองเกิดขึ้นหรือไม่ ถ้ามีไฟล์แสดงว่าการทำงานทุกอย่างถูกต้องสมบูรณ์# ./autobackup.sh
วันที่ 16 มกราคม 2561 เวลา 21.56 น. | เข้าดู 567 ครั้ง