วันพฤหัสบดีที่ 17 สิงหาคม พ.ศ. 2566

script Linux Loop *.sql

 https://stackoverflow.com/questions/20796200/how-to-loop-over-files-in-directory-and-change-path-and-add-suffix-to-filename



#!/bin/bash
for filename in /Data/*.sql; do
    for ((i=0; i<=3; i++)); do
        ./MyProgram.exe "$filename" "Logs/$(basename "$filename" .txt)_Log$i.txt"
    done
done


-------------------------------------------------------------------------------------


#!/bin/bash
for filename in *.sql; do
    for ((i=0; i<=3; i++)); do
         echo  "$filename" 
    done
done


วันเสาร์ที่ 25 มิถุนายน พ.ศ. 2565

import multiple sql files into a MySQL database?

 https://stackoverflow.com/questions/9000147/how-to-easily-import-multiple-sql-files-into-a-mysql-database


In Windows (powershell):

cat *.sql | C:\wamp64\bin\mysql\mysql5.7.21\bin\mysql.exe -u user -p database


You will need to insert the path to your WAMP


MySQL above, I have used my systems path.



In Linux (Bash):

cat *.sql | mysql -u user -p database

วันพฤหัสบดีที่ 9 สิงหาคม พ.ศ. 2561

convert all tables from MyISAM into InnoDB?

 mysql -u root -p dbName -e 
 "show table status where Engine='MyISAM';" | awk 
 'NR>1 {print "ALTER TABLE "$1" ENGINE = InnoDB;"}'  | 
  mysql -u root -p dbName


https://stackoverflow.com/questions/3856435/how-to-convert-all-tables-from-myisam-into-innodb

วันอังคารที่ 7 สิงหาคม พ.ศ. 2561

Centos 7.4 disable Transparent Huge pages (THP)

https://www.thegeekdiary.com/centos-rhel-7-how-to-disable-transparent-huge-pages-thp/

# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never


# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"
# grub2-mkconfig -o /boot/grub2/grub.cfg


# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

# shutdown -r now


# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-514.10.2.el7.x86_64 root=/dev/mapper/vg_os-lv_root ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet transparent_hugepage=never LANG=en_US.UTF-8

วันจันทร์ที่ 6 สิงหาคม พ.ศ. 2561

CentOS ตวจสอบ CPU temperature

CPU temperature embedded in Bash command prompt

https://askubuntu.com/questions/779819/cpu-temperature-embedded-in-bash-command-prompt

Find out your os version



แจ้งเตือนพื้นที่ใช้งานใกล้เต็มใน Linux

https://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html

Steps

=> Find disk space using df
=> Filter out filesystem and find out the percentage of space using grep
=> Write a shell script

Step # 1: First get disk space:

$ df -H
Output:
Filesystem             Size   Used  Avail Use% Mounted on
/dev/hdb1               20G    14G   5.5G  71% /
tmpfs                  394M   4.1k   394M   1% /dev/shm
/dev/hdb5               29G    27G   654M  98% /nas/www

Step # 2: Next filter out filesystem and find out the percentage of space

$ df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }'
Output:
71% /dev/hdb1
98% /dev/hdb5

Step # 3: Write a shell script

Above command displays field 5 and 1 of df command. Now all you need to do is write a script to see if the percentage of space is >= 90% (download script):
#!/bin/sh
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  echo $output
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
  partition=$(echo $output | awk '{ print $2 }' )
  if [ $usep -ge 90 ]; then
    echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
     mail -s "Alert: Almost out of disk space $usep%" you@somewhere.com
  fi
done

Setup Cron job

Save and install script as cronjob. Copy script to /etc/cron.daily/ (script downolad link)
# cp diskAlert /etc/cron.daily/
# chmod +x /etc/cron.daily/diskAlert
OR install as cronjob:
crontab -e
Write cronjob as per your requirement
10 0 * * * /path/to/diskAlert


Updated script version

Tony contributed and updated my script – You can exclude selected filesystem in case you don’t want monitor all filesystems.
#!/bin/sh
# set -x
# Shell script to monitor or watch the disk space
# It will send an email to $ADMIN, if the (free available) percentage of space is >= 90%.
# -------------------------------------------------------------------------
# Set admin email so that you can get email.
ADMIN="root"
# set alert level 90% is default
ALERT=90
# Exclude list of unwanted monitoring, if several partions then use "|" to separate the partitions.
# An example: EXCLUDE_LIST="/dev/hdd1|/dev/hdc5"
EXCLUDE_LIST="/auto/ripper"
#
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#
function main_prog() {
while read output;
do
#echo $output
  usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1)
  partition=$(echo $output | awk '{print $2}')
  if [ $usep -ge $ALERT ] ; then
     echo "Running out of space \"$partition ($usep%)\" on server $(hostname), $(date)" | \
     mail -s "Alert: Almost out of disk space $usep%" $ADMIN
  fi
done
}

if [ "$EXCLUDE_LIST" != "" ] ; then
  df -H | grep -vE "^Filesystem|tmpfs|cdrom|${EXCLUDE_LIST}" | awk '{print $5 " " $6}' | main_prog
else
  df -H | grep -vE "^Filesystem|tmpfs|cdrom" | awk '{print $5 " " $6}' | main_prog
fi



แจ้งผ่าน  Line 

# User specific environment and startup programs
servIP=`ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*'`
REMOTE_USER=`whoami`
REMOTE_IP=`who am i`
CUTIP=${REMOTE_IP%)*}
CUTIP=${CUTIP##*(}
curl -X POST -H 'Authorization: Bearer [LINE-TOKEN ที่ได้มาจากขั้นตอนก่อนหน้า]' -F 'message=Server "'"$servIP"'"
have SSH login via IP "'"$CUTIP"'" by user "'"$REMOTE_USER"'"
 ' https://notify-api.line.me/api/notify

วันเสาร์ที่ 20 ธันวาคม พ.ศ. 2557

วันศุกร์ที่ 19 ธันวาคม พ.ศ. 2557

ระบบยา Clopidogrel บันทักไว้นานๆๆ ทำครั้ง

1. ต้องมีอันนี้บนบันทัดบนสุด
#CUSTOM#
HCODE,SHIPADDRESS,EXPORTDATE,EXPORTEDUSERNAME,MAINUUID,UUID,DRUGID,USAGEDATE,AMOUNT,INDICATIONID,PATIENT.PID,PATIENT.FNAME,PATIENT.LNAME,PATIENT.HN,PATIENT.AN,DOCTOR.TYPEID,DOCTOR.CERTIFICATE,DOCTOR.FNAME,DOCTOR.LNAME,CREATEDATE,CONTACTEMAIL,CONTACTTEL

2.   ""11278",   ต้องแทนด้วย   "11278",  เอา ""  หรือแค่ "  ตัวอื่นห้ามเปลียน

""11278","ห้องยา","2014-12-19T14:53:59",

3. MAINUUID และ UUID  ต้องเป็นค่าว่าง

4. DOCTOR.CERTIFICATE   ต้องไม่เป็นค่าว่าง   


วันพฤหัสบดีที่ 18 ธันวาคม พ.ศ. 2557

แสดงเหตุผลการใช้ยานอกบัญชียาหลักแห่งชาติ

แสดงเหตุผลการใช้ยานอกบัญชียาหลักแห่งชาติ

1. ตาราง   drugitems_ned_reason_list    ใส่เหตุผลการใช้ยา
2. ฟอร์มพิมพ์  FORM-Doctor-Presc-NED-1
3. เปิดในระบบ system  setting  ระบบ ห้องแพทย์ในแสดง

วันอังคารที่ 16 ธันวาคม พ.ศ. 2557

วันนี้จำเป็นต้องทดสอบ HOSxPXE4 ในฐานจริง

1. กำหนด ค่าใน hospital_department
kskdepartment

2. กำหนดค่าใน kskdepartment.hospital_department_id
เพื่อกำหนดที่ตั้งเครื่องคอมใน kskdepartment ว่าที่ตั้งนั้น ๆ สังกัดหน่วยไหนใน hospital_department

ของคุณพี่ อุดมโชค สมหวัง

วันอังคารที่ 14 ตุลาคม พ.ศ. 2557

วันอาทิตย์ที่ 5 ตุลาคม พ.ศ. 2557

วันอังคารที่ 16 กันยายน พ.ศ. 2557

MySQL backup script สำหรับตั้งเวลาสำรองข้อมูลแยกตารางทุกวัน แทน windows เข้า NAS ก็ได้

#!/bin/sh
# System + MySQL backup script
# Copyright (c) SOFTWARE  2014
# This script is licensed under GNU GPL version 2.0 or above
# ---------------------------------------------------------------------

#########################
######TO BE MODIFIED#####

### System Setup ###
BACKUP=/Backup

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="192.168.48.5"



######DO NOT MAKE MODIFICATION BELOW#####
#########################################

### Binaries ###
7ZIP="$(which 7za)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

### Today + hour in 24h format ###
NOW=$(date +"%Y%m%d")

### Create hourly dir ###

#mkdir $BACKUP/$NOW

### Get all databases name ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
   if [ "$db" == "styhos" ];
  ##if [ "$db" != "mysql" ] && [ "$db" != "information_schema" ];
   then

### Create dir for each databases, backup tables in individual files ###
 # mkdir $BACKUP/$NOW/$db

  for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
  do
        FILE=$BACKUP/$i.sql
        ##FILE=$BACKUP/$NOW/$db/$i.sql
### --opt --default-character-set=tis620 --force --allow-keywords --single-transaction --user=diy --password=diymysql -h 192.168.48.5 ###
    echo $i; $MYSQLDUMP --opt --default-character-set=tis620 --force --allow-keywords --single-transaction  --add-drop-table  -q -c -u $MUSER -h $MHOST -p$MPASS $db $i  > $FILE
  done

    ### Compress all tables in one nice file to upload ###
 
 #   echo  $BACKUP/$NOW/$db/*.sql
#   7za -t7z  -pdiyzip  /home/LOG/styhos_`date "+%Y%m%d%H%M"`.sql.7z   Backup/*.sql  >> backup.txt



  else
   echo $db
  fi
done

### Compress all tables in one nice file to upload ###

ARCHIVE=$BACKUP/$NOW.sql.7z
ARCHIVED=$BACKUP/$NOW

#7za -t7z  -pXXX  $ARCHIVE $ARCHIVED



### Delete the backup dir and keep archive ###

#rm -rf $ARCHIVED



7za a  -pdiyzip  /home/LOG/styhos_`date "+%Y%m%d%H%M"`.sql.7z  /Backup/*.sql  >> backup.txt

rm -rf  /Backup/*.*

วันพุธที่ 10 กันยายน พ.ศ. 2557

MySQL error 28 from storage engine

MySQL error 28 from storage engine

HardDisk  Full

mysql script backup แล้ว 7zip พร้อม


#!/bin/sh




mysqldump --opt --default-character-set=tis620 --force --allow-keywords --single-transaction --user=XXXX --password=YYYY -h 192.168.48.5   hos > /home$








7za a -t7z  -pXXXX  /home/LOG/hos_`date "+%Y%m%d%H%M"`.sql.7z   /home/LOG/*.sql  >> backup.txt
rm -rf /home/LOG/*.sql >> backup.txt

Mysql Scipt backup เก็บเป็นตาราง ๆๆ ละแฟ้ม

#!/bin/sh
# System + MySQL backup script
# Copyright (c) 2008 Marchost
# This script is licensed under GNU GPL version 2.0 or above
# ---------------------------------------------------------------------

#########################
######TO BE MODIFIED#####

### System Setup ###
BACKUP=/Backup

### MySQL Setup ###
MUSER="sa"
MPASS="sa"
MHOST="172.16.16.195"


### FTP server Setup ###
#FTPD="YOUR_FTP_BACKUP_DIR"
#FTPU="YOUR_FTP_USER"
#FTPP="YOUR_FTP_USER_PASSWORD"
#FTPS="YOUR_FTP_SERVER_ADDRESS"

######DO NOT MAKE MODIFICATION BELOW#####
#########################################

### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
#FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

### Today + hour in 24h format ###
NOW=$(date +"%d%H")

### Create hourly dir ###

mkdir $BACKUP/$NOW

### Get all databases name ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do

  if [ "$db" != "mysql" ] && [ "$db" != "information_schema" ];
   then

### Create dir for each databases, backup tables in individual files ###
  mkdir $BACKUP/$NOW/$db

  for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
  do
    FILE=$BACKUP/$NOW/$db/$i.sql.gz
    echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
  done

  else
   echo $db
  fi
done

### Compress all tables in one nice file to upload ###

ARCHIVE=$BACKUP/$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW

$TAR -cvf $ARCHIVE $ARCHIVED

### Dump backup using FTP ###

### Delete the backup dir and keep archive ###

rm -rf $ARCHIVED