แสดงบทความที่มีป้ายกำกับ vim editor แสดงบทความทั้งหมด

วันเสาร์ที่ 31 ตุลาคม พ.ศ. 2558

[HOW TO] Script Backup Mysql Log (Shell Script)

[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

วันพุธที่ 20 สิงหาคม พ.ศ. 2557

[HOW TO] Use vi Editor Basic

การใช้งาน 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      พิมพ์  หรือ  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 เพื่อออกจากโปรแกรม