avhvi@yahoo.com
شنبه 12 آذر 1390, 08:44 صبح
با سلام خدمت تمامی دوستان گرامی
من یه اسکریپت دارم که می خوام بصورت زمانبندی شده هر روز اجرا بشه، ولی وقتی که crontab براش مینویسم اجرا نمیشه. نمیدونم مشکلش کجاست ؟ اسکریپ رو جهت رویت براتون می زارم شاید تو رفع عیب بتونه بیشتر کمک کنه.
#================================================= ====
#!/bin/bash
#================================================= =====
function get_br_code {
bk_file=""
img_file=""
khod_file=""
echo "
set head off
set feed off
select to_char(br_code) from bank.branch
where br_crnt=1;
exit;
" > t1.sql; for i in `sqlplus -s bank/maskan @t1.sql`
do
branch_code=$i
done ; rm t1.sql ;
}
#================================================= ======
function kill_all_sessions {
echo "
set head off
set feed off
spool kill.sql
select 'alter system kill session ' ||
'''' ||' '||sid||','||serial#||'''' ||' ;'
from v\$session
where type like 'USER' and terminal not like userenv('terminal');
spool off
@@kill.sql
alter tablespace image offline;
exit;
" > t1.sql ; sqlplus -s backup/backup @t1.sql ;rm t1.sql kill.sql;
}
#================================================= =======
function app_was_baned {
echo "
rename user_log to userlog;
delete userlog;
exit; " > t1.sql ; sqlplus -s bank/maskan @t1.sql ;rm t1.sql ;
}
#================================================= ========
function set_parameter {
echo "
update parameter set pa_dsc = (select cd_date from calendar
where cd_proc=2 )
where pa_tbl=53 and pa_itm=1 ;
update parameter set pa_mode = 0
where pa_tbl=53 and pa_itm=2 ;
exit; " > t1.sql ; sqlplus -s bank/maskan @t1.sql ; rm t1.sql;
}
#================================================= ========
function take_backup {
eday=''
for f in `sqlplus -s bank/maskan <<EOF
set head off
set feed off
set pagesize 1
select decode(cd.cd_proc, 1, 0, cd.cd_eday)
from bank.calendar cd
where cd.cd_yy * 10000 + cd.cd_mm * 100 + cd.cd_dd =
(select max(c.cd_yy * 10000 + c.cd_mm * 100 + c.cd_dd)
from bank.calendar c
where c.cd_eday <> 0
and c.cd_yy =
(select cd1.cd_yy from bank.calendar cd1 where cd1.cd_proc = 2));
exit;
EOF `
do
eday=$f
done
file_name="NK_"$branch_code"_"`date +%Y%m%d`"_$eday"
logfile="log_"$branch_code"_"`date +%Y%m%d`"_$eday.txt"
exp backup/backup file=$file_name full=y log=$logfile buffer=409600
echo "
rename userlog to user_log;
exit; " > t1.sql ; sqlplus -s bank/maskan @t1.sql;rm t1.sql
echo "
alter tablespace image online ;
exit; " > t1.sql ; sqlplus -s backup/backup @t1.sql;rm t1.sql
echo Compressing Data ....
gzip -f $file_name".dmp"
bk_file=$file_name".dmp.gz"
}
#================================================= ====
function image_backup {
image_file="image_"$branch_code"_"`date +%Y%m%d`"_$eday"
exp image/maskan file=$image_file buffer=409600
echo Compress Image backup ....
gzip -f $image_file".dmp"
img_file=$image_file".dmp.gz"
}
#================================================= ====
function drp_files {
if [ -z "$2" ]; then cnt1=10; else cnt1=$2; fi
cnt=1
for cnt_file in `ls -t $1* 2>/dev/null`
do
if [ $cnt -gt $cnt1 ]; then sudo rm -f $cnt_file 2>/dev/null; fi
cnt=`expr $cnt + 1`
done
}
#================================================= ====
function drop_out_files {
drp_files /home/user3/NK 5
drp_files /home/user3/B 5
drp_files /u/IMG_BK/image 2
drp_files /home/user3/log 5
drp_files /home/user3/send/00 10
drp_files /home/user3/sendpooya/B 30
drp_files /home/user3/snrc00/00 10
drp_files /home/user3/snrc00/txt/0 10
}
#================================================= ============================
function display_error1 {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* DANGER !! DAMGER !! DANGER !! DANGER !! DANGER *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Your USBDISK has a problem *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Please contact with Computer Dep *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
echo
}
#================================================= =============================
function display_message1 {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP ON USBDISK ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
echo
}
#================================================= ============================
function display_error {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* DANGER !! DAMGER !! DANGER !! DANGER !! DANGER *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Your TAPE has a problem *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Please contact with Computer Dep *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
}
#================================================= =============================
function display_message {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP ON TAPE ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
}
#================================================= =============================
if [ -a $HOME/run/dba_script ]
then
chmod 755 $HOME/run/dba_script
$HOME/run/dba_script
rm $HOME/run/dba_script
fi
#================================================= ===========================
sudo mount /dev/sda1 /media/usbdisk/
get_br_code
kill_all_sessions
app_was_baned
cd
take_backup
drop_out_files
image_backup
if [ -d /u/backup ];then cp $bk_file /u/backup/bklast.dmp ;fi
set_parameter
sudo rm -rf /u/NK_Client/*
sudo cp $bk_file /u/NK_Client/
sudo cp $logfile /u/NK_Client/
sudo rm -rf /media/usbdisk/*
sudo cp $bk_file /media/usbdisk/
sudo cp $logfile /media/usbdisk/
sudo cp $img_file /media/usbdisk/
rm -rf /home/user3/USBTEST/
mkdir /home/user3/USBTEST/
sudo cp /media/usbdisk/* /home/user3/USBTEST/
ls /home/user3/USBTEST/ > USBTEST.TXT
MAIN_PROC=`grep $bk_file /home/user3/USBTEST.TXT -l`
rm -rf /home/user3/USBTEST.TXT /home/user3/USBTEST/
/home/user3/sendpooya/moavagh
if (tar cvf /dev/st0 $bk_file $logfile )
then
display_message
else
display_error
fi
if [ $MAIN_PROC == '/home/user3/USBTEST.TXT' ]
then
display_message1
else
display_error1
fi
sudo umount /dev/sda1
sudo mv /home/user3/image*dmp* /u/IMG_BK
من یه اسکریپت دارم که می خوام بصورت زمانبندی شده هر روز اجرا بشه، ولی وقتی که crontab براش مینویسم اجرا نمیشه. نمیدونم مشکلش کجاست ؟ اسکریپ رو جهت رویت براتون می زارم شاید تو رفع عیب بتونه بیشتر کمک کنه.
#================================================= ====
#!/bin/bash
#================================================= =====
function get_br_code {
bk_file=""
img_file=""
khod_file=""
echo "
set head off
set feed off
select to_char(br_code) from bank.branch
where br_crnt=1;
exit;
" > t1.sql; for i in `sqlplus -s bank/maskan @t1.sql`
do
branch_code=$i
done ; rm t1.sql ;
}
#================================================= ======
function kill_all_sessions {
echo "
set head off
set feed off
spool kill.sql
select 'alter system kill session ' ||
'''' ||' '||sid||','||serial#||'''' ||' ;'
from v\$session
where type like 'USER' and terminal not like userenv('terminal');
spool off
@@kill.sql
alter tablespace image offline;
exit;
" > t1.sql ; sqlplus -s backup/backup @t1.sql ;rm t1.sql kill.sql;
}
#================================================= =======
function app_was_baned {
echo "
rename user_log to userlog;
delete userlog;
exit; " > t1.sql ; sqlplus -s bank/maskan @t1.sql ;rm t1.sql ;
}
#================================================= ========
function set_parameter {
echo "
update parameter set pa_dsc = (select cd_date from calendar
where cd_proc=2 )
where pa_tbl=53 and pa_itm=1 ;
update parameter set pa_mode = 0
where pa_tbl=53 and pa_itm=2 ;
exit; " > t1.sql ; sqlplus -s bank/maskan @t1.sql ; rm t1.sql;
}
#================================================= ========
function take_backup {
eday=''
for f in `sqlplus -s bank/maskan <<EOF
set head off
set feed off
set pagesize 1
select decode(cd.cd_proc, 1, 0, cd.cd_eday)
from bank.calendar cd
where cd.cd_yy * 10000 + cd.cd_mm * 100 + cd.cd_dd =
(select max(c.cd_yy * 10000 + c.cd_mm * 100 + c.cd_dd)
from bank.calendar c
where c.cd_eday <> 0
and c.cd_yy =
(select cd1.cd_yy from bank.calendar cd1 where cd1.cd_proc = 2));
exit;
EOF `
do
eday=$f
done
file_name="NK_"$branch_code"_"`date +%Y%m%d`"_$eday"
logfile="log_"$branch_code"_"`date +%Y%m%d`"_$eday.txt"
exp backup/backup file=$file_name full=y log=$logfile buffer=409600
echo "
rename userlog to user_log;
exit; " > t1.sql ; sqlplus -s bank/maskan @t1.sql;rm t1.sql
echo "
alter tablespace image online ;
exit; " > t1.sql ; sqlplus -s backup/backup @t1.sql;rm t1.sql
echo Compressing Data ....
gzip -f $file_name".dmp"
bk_file=$file_name".dmp.gz"
}
#================================================= ====
function image_backup {
image_file="image_"$branch_code"_"`date +%Y%m%d`"_$eday"
exp image/maskan file=$image_file buffer=409600
echo Compress Image backup ....
gzip -f $image_file".dmp"
img_file=$image_file".dmp.gz"
}
#================================================= ====
function drp_files {
if [ -z "$2" ]; then cnt1=10; else cnt1=$2; fi
cnt=1
for cnt_file in `ls -t $1* 2>/dev/null`
do
if [ $cnt -gt $cnt1 ]; then sudo rm -f $cnt_file 2>/dev/null; fi
cnt=`expr $cnt + 1`
done
}
#================================================= ====
function drop_out_files {
drp_files /home/user3/NK 5
drp_files /home/user3/B 5
drp_files /u/IMG_BK/image 2
drp_files /home/user3/log 5
drp_files /home/user3/send/00 10
drp_files /home/user3/sendpooya/B 30
drp_files /home/user3/snrc00/00 10
drp_files /home/user3/snrc00/txt/0 10
}
#================================================= ============================
function display_error1 {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* DANGER !! DAMGER !! DANGER !! DANGER !! DANGER *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Your USBDISK has a problem *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Please contact with Computer Dep *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
echo
}
#================================================= =============================
function display_message1 {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP ON USBDISK ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
echo
}
#================================================= ============================
function display_error {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* DANGER !! DAMGER !! DANGER !! DANGER !! DANGER *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Your TAPE has a problem *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* Please contact with Computer Dep *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
}
#================================================= =============================
function display_message {
bold=`tput smso `
boldoff=`tput rmso `
#tput clear
echo
echo " ${bold}******************************************* ************${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP IS DONE SUCCESSFULLY ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}* [[[ BACKUP ON TAPE ]]] *${boldoff}"
echo " ${bold}* *${boldoff}"
echo " ${bold}******************************************* ************${boldoff}"
echo
echo
}
#================================================= =============================
if [ -a $HOME/run/dba_script ]
then
chmod 755 $HOME/run/dba_script
$HOME/run/dba_script
rm $HOME/run/dba_script
fi
#================================================= ===========================
sudo mount /dev/sda1 /media/usbdisk/
get_br_code
kill_all_sessions
app_was_baned
cd
take_backup
drop_out_files
image_backup
if [ -d /u/backup ];then cp $bk_file /u/backup/bklast.dmp ;fi
set_parameter
sudo rm -rf /u/NK_Client/*
sudo cp $bk_file /u/NK_Client/
sudo cp $logfile /u/NK_Client/
sudo rm -rf /media/usbdisk/*
sudo cp $bk_file /media/usbdisk/
sudo cp $logfile /media/usbdisk/
sudo cp $img_file /media/usbdisk/
rm -rf /home/user3/USBTEST/
mkdir /home/user3/USBTEST/
sudo cp /media/usbdisk/* /home/user3/USBTEST/
ls /home/user3/USBTEST/ > USBTEST.TXT
MAIN_PROC=`grep $bk_file /home/user3/USBTEST.TXT -l`
rm -rf /home/user3/USBTEST.TXT /home/user3/USBTEST/
/home/user3/sendpooya/moavagh
if (tar cvf /dev/st0 $bk_file $logfile )
then
display_message
else
display_error
fi
if [ $MAIN_PROC == '/home/user3/USBTEST.TXT' ]
then
display_message1
else
display_error1
fi
sudo umount /dev/sda1
sudo mv /home/user3/image*dmp* /u/IMG_BK