Saturday, August 8, 2009

import data .txt kedalam database Mysql dari bash shell

Udah malam..ku mencoba berbagi mana tau dengan artikel ini teman-teman yang sedang mempunyai masalah yang sama dengan ku dapat terbantu..

singkat saja.ku di dapat tugas agar memindah kan data dari server kedalam database Mysql menggunakan bash sell agar import data nya dapat dilakukan dengan automatic dan akhir dari tugas ini kita buat crontab untuk mengatur waktu transfernya.

kita mulai.
di database ku buat 13 tabel dengan beberapa kolom yang bermacam type data..
akhir nya mencoba membuat sendiri dan berakkhir dengan error.akhir nya pertolongan terakhir adalah phone friend.^_^
pamz lah membantu ku...

scriptnya seperti ini..

FILES="/opt/monitoring/database"
DATE=`date +"%Y-%m-%d".txt`

FILES1="mon-mem-sbg-private-"
FILES2="mon-hd-sbg-private-"
FILES3="mon-mem-sbg-public-"
FILES4="mon-hd-sbg-public-"
FILES5="mon-mem-kpg-public-"
FILES6="mon-hd-kpg-public-"
FILES7="mon-mem-kpg-db-"
FILES8="mon-hd-kpg-db-"
FILES9="mon-hits-speedometer-"
FILES10="mon-hits-speedometer-hours-"
FILES11="mon-min-max-hits-speedometer-"

FILE1=$FILES1$DATE
FILE2=$FILES2$DATE
FILE3=$FILES3$DATE
FILE4=$FILES4$DATE
FILE5=$FILES5$DATE
FILE6=$FILES6$DATE
FILE7=$FILES7$DATE
FILE8=$FILES8$DATE
FILE9=$FILES9$DATE
FILE10=$FILES10$DATE
FILE11=$FILES11$DATE

cd $FILES
for file in `ls |grep $DATE`

do

echo $file

if [ $file = $FILE1 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE mem_sbg_private"
elif [ "$file" = $FILE2 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE hd_sbg_private"
elif [ "$file" = $FILE3 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE mem_sbg_public"
elif [ "$file" = $FILE4 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE hd_sbg_public"
elif [ "$file" = $FILE5 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE mem_kpg_public"
elif [ "$file" = $FILE6 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE hd_kpg_public"
elif [ "$file" = $FILE7 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE mem_kpg_db"
elif [ "$file" = $FILE8 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE hd_kpg_db"
elif [ "$file" = $FILE9 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE hits"
elif [ "$file" = $FILE10 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE hours_hits"
elif [ "$file" = $FILE11 ]; then
mysql -uroot -pandika celcom -e "LOAD DATA INFILE '$FILES/$file' INTO TABLE min_max_hits"
fi

done


dan tugas terakhir adalah buat crontab nya

dengan perintah

crontab -e

0 11 * * * /home/andia/celcom.sh

dengan membuat crontab berakhir lah tugas ku..untuk sementara..

ciganjur.00:00 09 august 2009


2 comments:

Anonymous said...

mohon penjelasan dari code diatas...

Anonymous said...

thank you, i think i'll try your way