xshell运行mysql_xshell每个月1号执行mysql语句

本文介绍了一个在xshell中通过脚本实现的功能,该脚本会在每月第一天且时间达到23点时检查三个特定表的数据,如果所有计数都不为0,则会执行删除操作。此外,还展示了如何在MySQL中构建查询和删除语句,并记录相关日志。
摘要由CSDN通过智能技术生成

while [ 1 = 1 ]

do

if [ $(date '+%d') != 01 ];

then

echo Today is not No.1 no data check

break;

fi

if [ $(date '+%H') = 23 ];

then

echo No Data Until 23:00

break;

fi

echo check start;

isok=1;

for i in `echo  "select count(1) rows from ebizcn_ConsultantRelationship where monthkey=date_format(date_sub(now(), interval -8 hour),'%Y%m')

union all

select count(1) from ebizcn_ConsultantActivityStatus where monthkey=date_format(date_sub(now(), interval -8 hour),'%Y%m')

union all

select count(1) from ebizcn_ConsultantCareerLevel where monthkey=date_format(date_sub(now(), interval -8 hour),'%Y%m')"|mysql -h${mysql_HOST} -u${mysql_USERNAME} -p${mysql_PASSWORD} -P${mysql_PORT} -s`;

do

if [ $i = "0" ];

then

isok=0;

fi

done;

if [ $isok = 1 ];

then

echo check end;

echo "delete from contacts.a_member_communication where expire_date

echo delete data success ;

break;

fi

sleep 600;

echo loop;

done

输出log:

declare @html varchar(max)='

Nearly 1 Week Inc rows
JobIDETLDateRows

select @html+=tr

from (

select top 7 '

'+batchid+''+cast(cast(dt as date) as varchar(10))+''+cast(sum(rows) as varchar(20))+'' tr

from table_log group by batchid,cast(dt as date) order by batchid desc

)a

declare @htmletl varchar(max)='

ETL LOG
Step NameMessageStart TimeEnd Time

select @htmletl+=tr

from (

select  '

'+tb+''+msg+''+convert(varchar(20),sdt,120)+''+isnull(convert(varchar(20),edt,120),'null')+'' tr

from etl_log

where sdt>cast(getdate() as date) and (tb not like 'p$%' or msg<>'success')

)a

declare @date varchar(20)

select @date=convert(varchar(20),isnull(dateadd(hour,-8,max(sdt)),'1900-01-01 00:00:00'),120) from etl_log where tb='a_member_list' and msg='success'

declare @datetag varchar(20)

select @datetag=convert(varchar(20),isnull(max(sdt),'1900-01-01 00:00:00'),120) from etl_log where tb='a_member_tag' and msg='success'

declare @datelevel varchar(20)

select @datelevel=convert(varchar(20),isnull(max(sdt),'1900-01-01 00:00:00'),120) from etl_log where tb='a_member_level' and msg='success'

select @html+'

' html ,@htmletl+'' htmletl,@date lastdate, @datetag datetag ,@datelevel datelevel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值