แสดงบทความที่มีป้ายกำกับ editor แสดงบทความทั้งหมด
วันเสาร์ที่ 31 ตุลาคม พ.ศ. 2558
[HOW TO] Script Backup Mysql Log (Shell Script)
Posted by
Unknown,
on
09:50:00
[HOW TO] Script Backup Mysql Log (Shell Script)
#!/bin/bash
###################################################
# ____ _ ____ #
# / ___|_ _ _ _| |_ ___ _ __ / ___| #
# | | _| | | | | | | __/ _ \| '_ \| | _ #
# | |_| | |_| | |_| | || (_) | | | | |_| | #
# \____|\__,_|\__,_|\__\___/|_| |_|\____| #
# #
###################################################
# ScriptMySqlLogBackup.sh #
###################################################
timestamp=$(date +"%Y%m%d")
MyHost="localhost"
MyUser="root"
MyPass=""
logDir="/var/log/mysql"
moveToDir=""
echo "[INFO] $(date +"%Y%m%d %T") : mysql log backup start";
mv $logDir/mysql.log $logDir/mysql.log.$timestamp
mv $logDir/mysql_error.log $logDir/mysql_error.log.$timestamp
mv $logDir/mysql-slow.log $logDir/mysql-slow.log.$timestamp
if [ -f "$logDir/mysql.log" ]
then
echo "[WARN] $(date +"%Y%m%d %T") : mysql.log Move Failed";
else
echo "[INFO] $(date +"%Y%m%d %T") : mysql.log Move Successed";
fi
if [ -f "$logDir/mysql_error.log" ]
then
echo "[WARN] $(date +"%Y%m%d %T") : mysql_error.log Move Failed";
else
echo "[INFO] $(date +"%Y%m%d %T") : mysql_error.log Move Successed";
fi
if [ -f "$logDir/mysql-slow.log" ]
then
echo "[WARN] $(date +"%Y%m%d %T") : mysql-slow.log Move Failed";
else
echo "[INFO] $(date +"%Y%m%d %T") : mysql-slow.log Move Successed";
fi
if [ -n "$MyPass" ]
then
/usr/bin/mysqladmin --host=$MyHost --user=$MyUser --password=$MyPass flush-logs
else
/usr/bin/mysqladmin --host=$MyHost --user=$MyUser flush-logs
fi
echo "[INFO] $(date +"%Y%m%d %T") : flush-logs Successed";
zip $logDir/mysql.log.$timestamp.zip $logDir/mysql.log.$timestamp
zip $logDir/mysql_error.log.$timestamp.zip $logDir/mysql_error.log.$timestamp
zip $logDir/mysql-slow.log.$timestamp.zip $logDir/mysql-slow.log.$timestamp
if [ -f "$logDir/mysql.log.$timestamp.zip" ]
then
echo "[INFO] $(date +"%Y%m%d %T") : mysql.log.$timestamp zip Successed";
rm -rf $logDir/mysql.log.$timestamp
echo "[INFO] $(date +"%Y%m%d %T") : mysql.log.$timestamp Deleted";
else
echo "[WARN] $(date +"%Y%m%d %T") : mysql.log.$timestamp zip Failed";
fi
if [ -f "$logDir/mysql_error.log.$timestamp.zip" ]
then
echo "[INFO] $(date +"%Y%m%d %T") : mysql_error.log.$timestamp zip Successed";
rm -rf $logDir/mysql_error.log.$timestamp
echo "[INFO] $(date +"%Y%m%d %T") : mysql_error.log.$timestamp Deleted";
else
echo "[WARN] $(date +"%Y%m%d %T") : mysql_error.log.$timestamp zip Failed";
fi
if [ -f "$logDir/mysql-slow.log.$timestamp.zip" ]
then
echo "[INFO] $(date +"%Y%m%d %T") : mysql-slow.log.$timestamp zip Successed";
rm -rf $logDir/mysql-slow.log.$timestamp
echo "[INFO] $(date +"%Y%m%d %T") : mysql-slow.log.$timestamp Deleted";
else
echo "[WARN] $(date +"%Y%m%d %T") : mysql-slow.log.$timestamp zip Failed";
fi
if [ -n "$moveToDir" ]
then
if [ -f "$logDir/mysql.log.$timestamp.zip" ]
then
mv $logDir/mysql.log.$timestamp.zip $moveToDir/mysql.log.$timestamp.zip
echo "[INFO] $(date +"%Y%m%d %T") : move mysql.log.$timestamp.zip to $moveToDir";
else
echo "[WARN] $(date +"%Y%m%d %T") : mysql.log.$timestamp.zip not found or move Failed";
fi
if [ -f "$logDir/mysql_error.log.$timestamp.zip" ]
then
mv $logDir/mysql_error.log.$timestamp.zip $moveToDir/mysql_error.log.$timestamp.zip
echo "[INFO] $(date +"%Y%m%d %T") : move mysql_error.log.$timestamp.zip to $moveToDir";
else
echo "[WARN] $(date +"%Y%m%d %T") : mysql_error.log.$timestamp.zip not found or move Failed";
fi
if [ -f "$logDir/mysql_error.log.$timestamp.zip" ]
then
mv $logDir/mysql_slow.log.$timestamp.zip $moveToDir/mysql_slow.log.$timestamp.zip
echo "[INFO] $(date +"%Y%m%d %T") : move mysql_slow.log.$timestamp.zip to $moveToDir";
else
echo "[WARN] $(date +"%Y%m%d %T") : mysql_slow.log.$timestamp.zip not found or move Failed";
fi
else
echo "[WARN] $(date +"%Y%m%d %T") : Move Failed";
fi
echo "[INFO] $(date +"%Y%m%d %T") : mysql log backup finish";
#============================ #edit ScriptMySqlLogBackup.sh #============================ MyHost="localhost" MyUser="root" MyPass="" logDir="/var/log/mysql" #============================ #edit crontab #============================ crontab -e 0 23 * * * /path/to/ScriptMySqlLogBackup/ScriptMySqlLogBackup.sh > /path/to/ScriptMySqlLogBackup/ScriptMySqlLogBackup.log
วันอาทิตย์ที่ 14 มิถุนายน พ.ศ. 2558
[HOW TO] LINE Bot on Raspberry PI with LINE API Python
Posted by
Unknown,
on
23:14:00
[HOW TO] LINE Bot on Raspberry PI with LINE API Python
1. ทำการอัพเดท packet ของ raspbian ก่อน
ทำการเพิ่ม สคริป ภายใต้
5. ทำการรันไฟล์ config.py และ ติดตั้งด้วย setup.py
6. หากไม่มี Error ใดๆในการติดตั้ง ให้ทดลองการส่งข้อความด้วยไฟล์ echobot.py ใน examples (อย่าลืมเข้าไปแก้ไฟล์ โดยการใส่ ID และ Pass ด้วยนะครับ)
เพิ่มเติม script checks status
ขอบคุณ Api ดีๆจาก https://github.com/carpedm20/LINE
เครดิต : ตาเล็ก วินโด้
1. ทำการอัพเดท packet ของ raspbian ก่อน
sudo apt-get install update
sudo apt-get install upgrade2. ซึ่ง [LINE API Python] จำเป็นต้องลง packet python
sudo apt-get install python
sudo apt-get install python-pip3. ทำการ download [LINE API Python] จาก https://github.com/carpedm20/LINE ในนี้จะมีทั้งวิธีใช้ด้วย
wget https://github.com/carpedm20/LINE/archive/master.zip
unzip master.zip
cd LINE-master/4. ทำการแก้ไข ไฟล์ api.py ให้สามารถเชื่อมต่อกับ server หลักได้
ทำการเพิ่ม สคริป ภายใต้
def ready(self): """ After login, make `client` and `client_in` instance to communicate with LINE server """เอาเครื่องหมาย + ออกด้วย
+ self.transport = THttpClient.THttpClient(self.LINE_HTTP_URL) + self.transport_in = THttpClient.THttpClient(self.LINE_HTTP_IN_URL) + self.transport.setCustomHeaders(self._headers) + self.transport_in.setCustomHeaders(self._headers) + self.protocol = TCompactProtocol.TCompactProtocol(self.transport) + self.protocol_in = TCompactProtocol.TCompactProtocol(self.transport_in) + self._client = CurveThrift.Client(self.protocol) + self._client_in = CurveThrift.Client(self.protocol_in) + self.transport.open() + self.transport_in.open()
5. ทำการรันไฟล์ config.py และ ติดตั้งด้วย setup.py
python config.py
python setup.py install
6. หากไม่มี Error ใดๆในการติดตั้ง ให้ทดลองการส่งข้อความด้วยไฟล์ echobot.py ใน examples (อย่าลืมเข้าไปแก้ไฟล์ โดยการใส่ ID และ Pass ด้วยนะครับ)
vi echobot.py
เพิ่มเติม script checks status
vi check.py
import subprocess
from line import LineClient, LineGroup, LineContact
try:
client = LineClient("ID", "PASS")
#client = LineClient(authToken="TOKEN")
except:
print "Login Failed"
while True:
op_list = []
for op in client.longPoll():
op_list.append(op)
for op in op_list:
sender = op[0]
receiver = op[1]
message = op[2]
msg = message.text
if 'GetRAM' in msg:
proc=subprocess.Popen('egrep --color "Mem|Cache|Swap" /proc/meminfo', shell=True, stdout=subprocess.PIPE, )
output=proc.communicate()[0]
sender.sendMessage("[%s] %s" % (sender.name, output))
if 'GetDATE' in msg:
proc=subprocess.Popen('date', shell=True, stdout=subprocess.PIPE, )
output=proc.communicate()[0]
sender.sendMessage("[%s] %s" % (sender.name, output))
if 'GetKERNAL' in msg:
proc=subprocess.Popen('uname -a', shell=True, stdout=subprocess.PIPE, )
output=proc.communicate()[0]
sender.sendMessage("[%s] %s" % (sender.name, output))
ขอบคุณ Api ดีๆจาก https://github.com/carpedm20/LINE
เครดิต : ตาเล็ก วินโด้
วันพุธที่ 20 สิงหาคม พ.ศ. 2557
[HOW TO] Use vi Editor Basic
Posted by
Unknown,
on
17:09:00
การใช้งาน vi editor เบื้องต้น
vi เป็น text editor หรือ เป็นโปแกรม editor ใช้สำหรับสร้าง, เพิ่ม ,ลบ หรือ แก้ไข ไฟล์ข้อมูล
เครดิตรูป:www.viemu.com
แต่ใน vim
จะมีส่วนที่มีการแก้ไขและปรับปรุงให้ดีขึ้นกว่า
vi และยังมี vimtutor ด้วย เพื่อฝึกการใช้
vi ให้ชำนาญมากขึ้น
การติดตั้ง
-Linux
Redhat , Fedora หรือ CentOS
yum -y install vim yum -y install vim-enhanced
-Linux
Debian หรือ Ubuntu
apt-get install vim
ลองดู
$ vimtutor
จะสอนการใช้
vi เป็นบทๆไป
บทนี้จะเป็นการเลื่อน
cursor ใน vi
การออกจาก
vi เป็นต้น ค่อยๆอ่านก็จะสามารถเรียนรู้ได้
การสร้างไฟล์ใหม่
การสร้างไฟล์ใหม่เมื่ออยู่บน shell
prompt
$
vi <filename>
การสร้างไฟล์ใหม่
ขณะทำงานอยู่บนโปรแกรม vi
เข้าสู่โหมด command(Escape) -> พิมพ์
: (เครื่องหมาย colon
) เพื่อเข้าสู่ command
prompt
-> พิมพ์ e(หรือ edit) ตามด้วยชื่อไฟล์
:
e <filename>
การแก้ไขไฟล์
การแก้ไขไฟล์เมื่ออยู่บน shell
prompt
$ vi
<path/filename>
ตัวอย่าง
$ vi /etc/httpd/conf/httpd.conf เป็นต้น
การเปลี่ยนโหมดการทำงาน
command -> insert พิมพ์ i หรือ a
insert -> command กดปุ่ม escape หรือ Ctrl+[
ให้สังเกตที่มุมล่างซ้ายของโปรแกรม
ถ้าเป็นโหมด insert
จะมีข้อความ --insert--
ปรากฏอยู่
การบันทึกไฟล์ระหว่างการทำงาน
มีขั้นตอนดังนี้
เข้าสู่โหมด command
(กด Escape)
พิมพ์ :
(เครื่องหมาย colon) เพื่อเข้าสู่ command prompt
พิมพ์ w
( หรือ write) และกด enter เพื่อบันทึกไฟล์
: w <filename>
การออกจากการทำงาน
command มีอยู่ 3 กรณีดังนี้
กรณีที่ 1 บันทึกไฟล์แล้ว
พิมพ์ : (เข้าสู่ command prompt) -> พิมพ์ q (หรือ quit) + Enter เพื่อออกจากโปรแกรม
กรณีที่ 2 บันทึกไฟล์พร้อมออกจากโปรแกรม
พิมพ์ : ( เข้าสู่ command
prompt) -> พิมพ์ wq (
มาจากคำว่า write+quit
) + Enter เพื่อบันทึกและออกจากโปรแกรม
กรณีที่ 3
ออกจากโปรแกรมโดยไม่ต้องการบันทึกไฟล์
พิมพ์ : (เข้าสู่ command
prompt) -> พิมพ์ q! + Enter เพื่อออกจากโปรแกรม
สมัครสมาชิก:
บทความ
(
Atom
)


