วันพฤหัสบดีที่ 5 กรกฎาคม พ.ศ. 2561

ารติดตั้ง Fonts ภาษาไทยให้กับ Ubuntu

การติดตั้ง Fonts ภาษาไทยให้กับ Ubuntu 11.10 Server

ปัญหาที่เจอคือ  Browser ไม่รองรับภาษาไทย  คือ  อ่านไม่รู้เรื่องดังรูป


การแก้ปัญหา

      1. ทำการติดตั้ง Fonts ภาษาไทยด้วยแพ็คเกต xfonts-thai  และ  msttcorefonts  ซึ่งเป็นแพ็คเกตที่รองรับ fonts ของMicrosoft  โดยการใช้คำสั่งดังต่อไปนี้ 
$ sudo apt-get install xfonts-thai msttcorefonts    ดังรูป



ยอมรับเงื่อนไขลิขสิทธิ์



การติดตั้งเสร็จสมบูรณ์

       
     2. ทดสอบเข้าเว็ปไซต์เดิมใหม่อีกครั้ง  ดังรูป  

วันพุธที่ 13 มิถุนายน พ.ศ. 2561

ftp vsftp login incorrect 530 can't login

Hey there,

I just wanted to share a problem I had with my ftpdaemon with you and which I didn't find in this forum.

My ftp server always throw an error, trying to log in with new created ftp accounts. I'm not sure since when this error occurred, a user of mine pointed me on that issue. But I would say the Vestacp version is not essential in that case.

My ftp client acted as if I just entered wrong user data.
CODE: SELECT ALL
Befehl:       USER ******
Antwort:     331 Please specify the password.
Befehl:       PASS *******
Antwort:     530 Login incorrect.
So I checked the vsftp logs in /var/log/vsftpd.log
CODE: SELECT ALL
Sun Mar 25 12:04:01 2018 [pid 2] CONNECT: Client "87.123.193.139"
Sun Mar 25 12:04:04 2018 [pid 1] [*********] FAIL LOGIN: Client "87.123.193.139"
Actually looked like wrong user data. But I entered them correctly.
I checked /etc/passwd and in the meantime I also googled a bit. So I found this article, which described exactly my problem.
https://github.com/serghey-rodin/vesta/issues/1437

New users got a different path to the "nologin" shell than before.
Initially it was /sbin/nologin. New users got the path to /usr/sbin/nologin
That path was not registered in /etc/shells.
CODE: SELECT ALL
nano /etc/shells
Looked like this:
CODE: SELECT ALL
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/sbin/nologin
/usr/bin/rssh
/usr/bin/tmux
and I easily added this line
CODE: SELECT ALL
/usr/sbin/nologin
saved the file and everything worked fine again afterwards.

Cheers and have a nice Sunday!



/etc/init.d/vsftpd restart

วันอังคารที่ 5 มิถุนายน พ.ศ. 2561

MikroTik ป้องกันการ Login ซ้อน

MikroTik ป้องกันการ Login ซ้อน

หลายท่านที่เป็น admin คงเคยเจออาการการ login ซ้อนกันมานะคัรบที่จะมีข้อความแจ้งเตือนว่า simultaneous session limit reached for user กันมาบ้างวันนี้ผมจะเอา script จาก MikroTik forum มาบอกเล่ากันคัรบ (https://forum.mikrotik.com/viewtopic.php?t=123434)


:local uname $user;
:local usercount 0;
:local usertime "00:00:00";
:local kickable;
:local maxuser 3;

:foreach i in=[/ip hotspot active find user=$uname] do= {
  :local curup [/ip hotspot active get $i uptime];
  :if ( $curup > $usertime ) do={
        :set usertime $curup;
        :set kickable $i;
   }
  :set usercount ($usercount+1);
}
:if ($usercount >= $maxuser) do={
  :log info "Login user: $uname ($usercount/$maxuser) - Oldest $usertime will be logout!";
  /ip hotspot active remove numbers=$kickable;
} else {
   :log info "Login user: $uname ($usercount/$maxuser)";
}

จากตัวอย่างใน script เราจะต้องเอาไปวางไว้ในส่วนของ winbox => ip => hotspot => user profile แล้วตั้ง maxuser ให้ตามจำนวนที่ต้องการเช่นในตัวอย่างตั้ง 3 เพราะต้องการให้ login ได้ใช้งานแค่ 2 คนเท่านั่น


จากนั่นก็ไปแก้ที่ Shared Users ให้เท่ากับจำนวน maxuser ที่ใน script


เพียงเท่านี้เวลามีการ login ซ้อนเกิดขึ้นมา user แกสุดก็จะโดนเตะออกละคัรบ



# base function Sourcecode: Mikrotik Forum
# Local Variables Section
:local uname $user;
:local usercount 0;
:local usertime "00:00:00";
# Variable for user who is previously logged in
:local kickable;
# Variable for max session allowed, 2 means only one session is allowed at a time
:local maxuser 2;
# Load all active users in hotspot
:foreach i in=[/ip hotspot active find user=$uname] do= {
# Load UPTIME for all users to be matched later
:local curup [/ip hotspot active get $i uptime];
# If previous logged user is matched using UPTIME [above then 0] then set global variables for disconnection
:if ( $curup > $usertime ) do={
:set usertime $curup;
:set kickable $i;
}
:set usercount ($usercount+1);
}
# IF Function for user who is already logged in,
:if ($usercount >= $maxuser) do={
:log info "Login user: $uname ($usercount/$maxuser) - Oldest $usertime will be logout!";
# Kick previous logged users (if same ID)
/ip hotspot active remove numbers=$kickable;
# If not, do nothing, just log, You can modify this function as well / JZ
} else {
:log info "Login user: $uname ($usercount/$maxuser)";

วันศุกร์ที่ 11 พฤษภาคม พ.ศ. 2561

Line notify Mikrotik

บทความก่อนหน้านี้ เฮียได้สอนในวัน ปาตี้ ประจำปีไปแล้วนะครับ  แต่เรามาสรุปรายละเอียดอีกครั้ง  นะครับ 

Click this bar to view the full image.


อันดับแรกหลังจากเปิดใช้งาน mikrotik เรียบร้อย ก็เข้ามาตรง tools --> เลือก Netwatch

-Add Netwatch ตรง Host ใส่ IP ของ AP Wifi ที่เราต้องการให้ส่งข้อมูล เช่น AP ผม 20.0.0.10 
ดังภาพ

จากนั้นเข้าหัวข้อย่อย ตรง up ใส่สคิป
ตรง down ก็เหมือนกัน ใส่สคิป 

ท่านที่มีความรู้ php หรือ มาสาย programing อาจจะเข้าใจง่าย แต่สมาชิก ที่ไม่ได้มาสาสายนี้อาจจะงงนิดหน่อย

ยกตัวอย่าง 
๊Up
/tool fetch url="https://linenotify.com/notify.php\?token=xxxxxxxxxxxxxxxxx&message=ITAndaman%20Club%0AIdentity%20%3AAP12%0AMessage%20%3A%20%22Online%22%0AIP%3A%2020.0.0.10"
Click this bar to view the full image.


Down
/tool fetch url="https://linenotify.com/notify.php\?token=xxxxxxxxxxxxxxxxx&message=ITAndaman%20Club%0AIdentity%20%3AAP12%0AMessage%20%3A%20%22Online%22%0AIP%3A%2020.0.0.10"
Click this bar to view the full image.


(xxxxxxx คือ token ของ line Group จองคุณ)

Click this bar to view the full image.

token Line
https://notify-bot.line.me/login

จากนั้น คุณ 

ดูตามรูปประกอบ  คลิกที่ชื่อ จากนั้น เลือก My Page


จากนั้นก็เลือก Generate token
ตามภาพประกอบนะ 


(เวปแปลงสัญญาณ dencoder )
http://meyerweb.com/eric/tools/dencoder/

สิ่งที่ขาดไม่ได้ คือ คุณต้องเป็นเพื่อนกับ Line Notify  และ Add to Group ของคุณด้วย

Click this bar to view the full image.

Click this bar to view the full image.

Click this bar to view the full image.

Click this bar to view the full image.

Click this bar to view the full image.

Click this bar to view the full image.



ตั้งค่า MikroTik แจ้งเตือนระบบด้วย Line API

วันนี้เราจะมาเรียนรู้วิธีการทำระบบการแจ้งเตือนผ่าน Line API เรามาเริ่มรู้จัก Line API กันก่อนดีกว่าคัรบ Line API คือ Web Service ที่จะทำให้คุณสามารถส่งข้อความของคุณเข้าห้องแชตได้ โดยสามารถส่งเข้าเป็นรายบุคคลหรือเป็นกลุ่มก็ได้





โดย Line API นั่นรองรับทั้งการส่งข้อความแบบ Push API และ Reply API แต่ในบทความนี้เราจะขอพูดเพียงแค่ Push API ที่มาจาก Bot Line เท่านั่นนะคัรบ


โดยการส่งข้อความนั่นเราสามารถส่งได้ทั้งแบบตัวต่อตัวหรือแบบกลุ่ม


เรามาดูขั้นตอนการทำระบบแจ้งเตือนโดยผ่าน MikroTik กันคัรบ ขั้นแรกเลยให้เราเข้าไปที่ https://notify-bot.line.me/en/เพื่อเข้าสู่ Line API Dashboard


ให้ Login ด้วย Username Password ของ Line Account ที่ตัวเองมีอยู่เมื่อเข้าระบบเรียบร้อยจะเข้าสู่หน้า Connected Services


หน้าระบบจะแสดง Service ที่เราได้ทำการสร้างไว้แล้วหากเข้าให้เป็นครั้งแรก Connected Service จะไม่มีรายการขึ้นมาแสดงให้เราไปสร้าง Token ก่อนโดยการกด Generate Token

ให้เราเลือกยุคคลหรือกลุ่มที่ต้องการจะส่งข้อความเข้าไปเมื่อระบบมีการแจ้งเตือน (Search by group name) จากนั่นให้ใส่ตัวอักษร 20 ตัวเพื่อนทำการสร้าง Generate Token



ให้เรา Copy Token นี้เอาไว้เพื่อเราจะใช้อ้างอิงในการส่งข้อความเข้ากลุ่มที่เราได้ทำการเลือกไว้ครับ
ขั้นตอนต่อไปเราจะไปทำระบบตรวจจับว่าถ้าระบบ ของเรามีจ้อผิดหลาดหรือระบบ Internet ล่มขึ้นมาเราจะแจ้งเตือนยังไงใน MikroTik

ต้วอย่าง : ระบบเดิมมี WAN Internet 2 เส้นนะคัรบ ผมจะทำการแจ้งเตือนเมื่อWAN เส้นใดเส้นหนึ่งล่มนะคัรบ

เข้าไปที่ Winbox => PPP => Profiles แล้วเลือก Profile ที่ pppoe-out1 และ pppoe-out2 เลือกใช้จาดนั่นก็ใส่ Script ดังต่อไปนี้ลงใน On up และ On Down ทั้งสอง Script นี้จะทำงานเมื่อ pppoe-client ต่อไปยัง Server แล้วมีข้อผิดพลาดครับ

/tool fetch url="https://linenotify.com/notify.php\?token=i0TAXqkdsda9BAevzIXUK8tU53QVMBE71wEEXmlwmpXRZV&message=Test%20Internet_wan2%20is%20up." keep-result=no

โดย Token = ให้เราเอา Token ที่สร้างจากหน้า Line API มาใส่คัรบ
ส่วน Message = ให้เราใส่ข้อความเข้าไปครับโดน %20 คือค่าเหมือนเวลาเรากด space bar ครับคือเคาะนั่นเองครับเราต้องเข้าระหัว HTML Encode ไว้ครับ ไม่งั้นจะทำให้ Script ส่งไม่ได้คัรบ Error



จากนั่นให้เราไป Invite Line Notify ไปใส่ไว้ในกลุ่มที่เราได้สร้างขึ้นมาด้วยนะครับไม่งั้นตัว Line Notify จะไม่ทำงานคัรบ



เท่านี้ก็เสร็จเรียบร้อยละคัรบเราก้มาลองเทสดูว่าถ้าระบบ Down ก็มีข้อความส่งมาครับ



เพียงเท่านี้เราก็ทำ Line Group Notify ได้แล้วคัรบ ท้านสุดเราสามารถทำ Line API ไปต่อยอดเพื่อทำการแจ้งเตือนเเมื่อระบบ Overload เกินกี่ % ก็ได้นะคัรบ

วันจันทร์ที่ 23 เมษายน พ.ศ. 2561

Sys prep

ก่อนที่จะ Ghost เป็น Image เก็บไว้นะครับ

ให้รัน c:\windows\system32\sysprep\sysprep.exe


หลักจากกนั้นค่อย Ghost to Image 

ปล. มันจะเอาทั้ง Drivers และ Windows license ออกด้วย



เปลี่ยน Hardware โดยไม่ต้องติดตั้ง Windows 7 ใหม่
ปกติผู้ใช้เครื่องคอมพิวเตอร์ มีการอัปเกรดเครื่องโดยเปลี่ยนอุปกรณ์บางตัวในคอมพิวเตอร์ อย่างเช่น เมนบอร์ด หรือ การ์ดจอ หรือการย้ายฮาร์ดดิสก์ที่มี Window อยู่ไปติดตั้งเครื่องใหม่ที่มีอุปกรณ์ทางฮาร์ดแวร์ที่ต่างกับเครื่องเก่า  เมื่อมีการบูตเครื่องจะเกิด Blue Screen ทำให้ใช้งานไม่ได้นั้นเป็นเพราะ Windows จำค่าอุปกรณ์เดิมที่ติดตั้งอยู่ ไดร์เวอร์มันขัดกันระหว่างในตัว Windows กับอุปกรณ์ใหม่  วิธีแก้ก็ต้องลง Windows ใหม่อีกครั้งซึ่งไม่เป็นการดีเลยต้องมาเสียเวลา และใน Windows 7 ก็จะเจอปัญหานี้ด้วยเช่นกัน อย่างหลีกเลี่ยงไม่ได้
บทความนี้ผมจะมาเสนอวิธีการแก้ไขปัญหานี้ จะทำให้เราสามารถย้ายฮาร์ดิสก์หรือเปลี่ยนอุปกรณ์ใดๆ ในคอมพิวเตอร์ ได้อย่างสะดวก วิธีการก็ไม่ยากจนเกินไป สำหรับตัวช่วยในเรื่องนี้ก็อยู่ในWindows 7
1.
ก่อนที่จะมีการติดตั้งอุปกรณ์ใหม่หรือย้ายฮาร์ดดิสก์ไปที่เครื่องใหม่ เราต้องบูตเข้าตามปกติก่อน
2.
จากนั้นให้เปิดหน้าต่าง Command Prompt ด้วยสิทธิ Administrator ด้วยคลิก Start Men > All Programs > Accessories > คลิกขวาที่คำสั่ง Command Prompt เลือก Run as administrator
3.
ที่หน้าต่าง Command Prompt ให้พิมพ์ %windir%\System32\Sysprep\Sysprep.exe แล้วกดคีย์ Enter

4.เมื่อหน้าต่าง System Preparation Tool เปิดขึ้นมา ที่หัวข้อ System Cleanup Action จะเป็น Enter System Out-of-Box-Experience (OOBE) ให้คลิกเลือก  Generalize และที่หัวข้อ Options Shutdown เลือกเป็น Shutdown คลิก OK

5. System Preparation Tool จะทำการล้างไดร์เวอร์ต่างๆ ที่มีอยู่ใน Windows ทั้งหมด เมื่อล้างเรียบร้อยก็จะ Shutdown

6.คราวนี้เราจะเปลี่ยนอุปกรณ์ต่างๆของเครื่อง หรือจะย้ายฮาร์ดดิสก์ไปติดตั้งที่เครื่องใหม่ก็ทำได้แล้ว
7.เมื่อเราบูตเครื่องใหม่อีกครั้ง  System Preparation Tool จะทำการตรวจสอบฮาร์ดดิสก์และอุปกรณ์ต่างๆ ในเครื่อง ทำการติดตั้งไดร์เวอร์ดีฟอลต์ของ Windows 7และจัดการอัปเดทรีจิสตรี้ และจะมีการบูตเครื่องใหม่ 1 หรือ 2 ครั้ง





8.เมื่อเครื่องบูตครั้งสุดท้ายจะปรากฎหน้าต่าง Set  up Windows เหมือนเราติดตั้ง Windows ใหม่ตามรูป ให้คลิก Next

9.หน้าต่างต่อมาให้คุณใส่ชื่อ Account (User name) ใหม่ ห้ามใส่ User name เดิมเพราะว่าเรามี Profiles เดิมที่อยู่ใน Windows อยู่แล้ว เราจำเป็นต้องเก็บของเดิมไว้ เพราะถ้าใช้ User name เดิมค่า Profiles ของเก่าเราจะหายไปหมด ค่าต่างๆของเดิมต้องมา setup กันใหม่เหมือนการติดตั้ง Windows ใหม่ ซึ่งไม่ใช่จุดประสงค์ของเรา ในที่นี่ใส่ User name เป็น Test คลิก Next

10.ต่อมาก็จะเป็นหน้าต่างที่ใส่ Password > Product Key > I accept the license terms ไปจนถึงการตั้งเวลามาตรฐาน ก็เหมือนกับการติดตั้ง Windows ใหม่ ในที่นี่คงไม่ต้องกล่าวถึงรายละเอียดนะครับ
11.จากข้อ 10 เมื่อเข้าถึง Windows เรียบร้อย เราจะเข้ามาใน  Account ที่ชื่อ Test ตามที่เราสร้างขึ้นมาใหม่จากขั้นตอนที่ผ่านมา คราวนี้เราจะมาเข้า Account เดิม ทำได้โดยคลิกที่ปุ่มStart ที่รายการ Shutdown ให้เลือกเป็น Log off  เมื่อ Log off ออกมาแล้วจะพบว่ามีชื่อ Account เก่าของเรา (ในที่นี่ชื่อ augie) ทำการ Log on เข้ามาใหม่ในชื่อ Account เก่าของเรา


เมื่อเข้ามาที่ Account เดิมเราจะพบว่า Windows เดิมของเรากลับมาแล้ว ตอนนี้ก็เพียงแค่ติดตั้งไดร์เวอร์ที่จำเป็นสำหรับอุปกรณ์ชิ้นใหม่ก็เท่านั้น  ส่วน Account ชื่อ Test ก็ให้ลบออกได้ครับ

วันจันทร์ที่ 16 เมษายน พ.ศ. 2561

cent os error disk

ลองใส่ password root แล้ว 

#fsck.ext3 -y /   


ทำทุกๆ file system เมื่อครบแล้วลอง restartถ้าไม่มีการแก้อะไรก่อนหน้านี้ น่าจะเกิด filesyst มีปัญหาครับ

ได้แล้วครับ ผมใช้ #fsck -A -y
มันต่างกันยังงัยกับ #fsck.ext3 -y /