bash script ساده برای اتصال به پایگاه داده mysql:
در پایین یک اسکریتپ ساده به زبان bash در سیستم عامل لینوکس را مشاهده می نمائید:
#!/bin/bash
MYSQL_USER=your data base username
MYSQL_PASS=
MYSQL_DB=your data base name
CURRENT_TIMESTAMP=`date +"%s"`
echo "CURRENT TIMESTAMP:"
echo $CURRENT_TIMESTAMP
ONE_DAY=$((60*60*24))
YESTERDAY_TIMESTAMP=$((CURRENT_TIMESTAMP-ONE_DAY))
echo "YESTERDAY_TIMESTAMP:"
echo $YESTERDAY_TIMESTAMP
echo "enter pass to select number of records in a day"
select_query=`mysql -u$MYSQL_USER -p $MYSQL_DB -se "select count(*) from dl_rain_data_logger_status where date_time between $YESTERDAY_TIMESTAMP and $CURRENT_TIMESTAMP"`
if [ "$select_query" == "" ]
then
echo "Could not fetch result ";
exit 1;
fi
echo "records before delete:"
echo $select_query
echo "enter pass to delete $select_query records..."
query=`mysql -u$MYSQL_USER -p $MYSQL_DB -se "delete from dl_rain_data_logger_status where date_time between $YESTERDAY_TIMESTAMP and $CURRENT_TIMESTAMP"`
echo "enter pass to check result of deletion"
select_query=`mysql -u$MYSQL_USER -p $MYSQL_DB -se "select count(*) from dl_rain_data_logger_status where date_time between $YESTERDAY_TIMESTAMP and $CURRENT_TIMESTAMP"`
if [ "$select_query" == "" ]
then
echo "Could not fetch result ";
exit 1;
fi
echo "records after delete:"
echo $select_query
echo "done."
توضیحات اصلی: اسکریت قرار است به دیتابیس متصل شود و رکورد های یک روز قبل را پاک کند. توضیحات خط به خط اسکریپت در زیر عکس ارائه شده است:
1: دستور مرتبطه به ساخت یک اسکریپت bash در لینوکس
3:تعریف متغییر برای نگهداری کاربر دیتابیس
4:تعریف متغییر برای نگهداری رمز دیتابیس(به هیچ وجه در داخل فایل نگهداری نشود بخاطر همین این متغییر خالی نگهداری شده است)
5:تعریف متغییر برای نگهداری نام دیتابیس
7: تعریف متغییر برای نگهداری زمان جاری با فرمت لینوکس time stamp
8:دستور Echo رشته روبرویش را چاپ خواهدکرد.
9: مقدا متغییر که زمان جاری را ذخیره کرده بود را چاپ خواهد کرد.
11: یک متغییر برای ثبت ثانیه های یک روز ایجاد میکنیم.
12: با منها کردن متغییر های زمان جاری با متغییر one_day زمان 24 ساعت قبل مشخص می شود.
14و 15:همانند خط هشتم و خط نهم زمان 24 ساعت قبل را چاپ می نماید.
17: یک متن چاپ میکنیم که لطفا رمز دیتابیس را برای نمایش تعداد رکورد های 24 ساعت اخیر وارد نمائید.
18: در این خط یک کوئری به دیتابیس میزنیم که تعداد رکورد های 24 ساعت را برگرداند.خروجی به یک متغییر به نام select_query ذخیره می شود.
19: بررسی متغییر select_query که در صورت خالی بودن خطایی در خطوط 20 تا 23 چاپ نماید.
25و26: در این خطوط تعداد رکورد های 24 ساعت را نمایش می دهیم.
28: یک متن چاپ میکنیم که لطفا رمز دیتابیس را برای حذف تعداد رکورد های 24 ساعت اخیر وارد نمائید.
29: کوئری مرتبطه به حذف رکورد های 24 ساعت گذشته.
32: یک متن چاپ میکنیم که لطفا رمز دیتابیس را برای نمایش نتیجه حذف رکوردها وارد نمائید.
33: کوئری مرتبط به نمایش نتیجه حذف رکوردها.
43: بررسی دوباره متغییر select_query که در صورت خالی بودن خطایی در خطوط 35تا 38 چاپ نماید.
40: نمایش پیغام تعداد رکورد های باقی مانده 24 ساعت اخیر که اگر حذف رکورد ها به درستی انجام گیرد باید این عدد صفر شود که در خط 41 چاپ خواهد شد.
44: اتمام اسکریپت.
نکته: در توضیحات بالا جزئیات دستورات و عملگرها را بیان نکرده ام تا توضیحات ساده و روان باشند. در صورت نیاز به توضیحات دقیق، هر خط از اسکریپت بالا لطفا سوال خود را در قسمت کامنت ها بیان نمائید.
باتشکر