Open YohLee opened 6 years ago
###########################mysql_datasupport############################### v_mysql_db='datatest' v_mysql_ip='10.1.1.1' v_mysql_u='root' v_mysql_p='123456' v_mysql_str="SELECT table_name,real_table_name FROM md_table_conf WHERE db_id=1 AND is_all='add' AND STATUS=1;" v_url_file='/uCloudlink/greenplum/self_check/get_tablename.cfg' mysql -A ${v_mysql_db} -h ${v_mysql_ip} -u${v_mysql_u} -p${v_mysql_p} -e "${v_mysql_str}" | sed '1d' > ${v_url_file}
##########################mongodb############################ v_mongo_db='db_user' v_mongo_ip='10.1.4.4' v_mongo_u='mongotest' v_mongo_p='123456' v_mongo_port='27019'
cat $v_url_file | while read line
do
v_line_t=echo $line|awk '{print $1}'
v_line_p=echo $line|awk '{print $2}'
echo $v_line
v_table_str="SELECT tablename FROM t_source_record WHERE partition_tablename='"${v_line_p}"';"
v_table_name="mysql -A ${v_mysql_db} -h ${v_mysql_ip} -u${v_mysql_u} -p${v_mysql_p} -e \"${v_table_str}\" | sed '1d'
"
v_execute="$v_table_name"
v_mongo="mongo ${v_mongo_db} --port ${v_mongo_port} -u ${v_mongo_u} -p ${v_mongo_p} --authenticationDatabase=${v_mongo_db} --host ${v_mongo_ip} --eval \"db.${v_line_p}.stats().count\" | sed -n '3p'
"
v_mongo_count="$v_mongo"
echo $v_mongo_count
v_datetime=date -d today +"%Y-%m-%d %T"
if [ -z "$v_execute" ] ; then
v_insert="INSERT INTO t_source_record(systemname,tablename,partition_tablename,countrows,update_time) VALUES('oss_perflog','${v_line_t}','${v_line_p}',${v_mongo_count},'${v_datetime}');"
mysql -A ${v_mysql_db} -h ${v_mysql_ip} -u${v_mysql_u} -p${v_mysql_p} -e "${v_insert}"
echo "Insert "
else
v_update="UPDATE t_source_record SET countrows=${v_mongo_count},update_time='${v_datetime}' WHERE partition_tablename='${v_line_p}';";
mysql -A ${v_mysql_db} -h ${v_mysql_ip} -u${v_mysql_u} -p${v_mysql_p} -e "${v_update}"
echo "Update"
fi
done
###########################################远程增量拷贝文件########################################
!/bin/sh
ip=10.1.1.12 scp_dir=/root/learn/ dir=/home/admin/ curTime=
date +%Y%m%d
echo $curTime BN=/home/admin/scp_yml.cfg #用来保存最后一次备份的日期num=
awk 'NR==1{print $0}' $BN
echo $num t2=date -d "$num" +%Y%m%d
days=expr $t2 - $curTime
fileList=
ssh ${ip} find ${scp_dir} -type f -ctime $days
for file in $fileList;do #循环判断文件是否存在 不存在就从机器1上考过来 if [ ! -f $file ];then scp root@$ip:$file $dir fi; done;
echo $curTime > $BN
###########################################调用mysql,greenplum命令行更改表数据########################################
!/bin/bash
###########################mysql############################### v_mysql_db='db_big' v_mysql_ip='10.1.4.5' v_mysql_u='root' v_mysql_p='123456' v_mysql_str="SELECT table_name FROM tb_data WHERE id=1;" v_url_file='/home/update_errid_oss_system.cfg' mysql -A ${v_mysql_db} -h ${v_mysql_ip} -u${v_mysql_u} -p${v_mysql_p} -e "${v_mysql_str}" | sed '1d' > ${v_url_file}
##########################greenplum############################ v_gp_db='db_gp' v_gp_ip='10.7.1.6' v_gp_u='gpadmin' v_gp_port='5432' v_gp_command=/home/get_maxid_tb.sh #output psql command shell script v_gp_max_id=/home/get_maxid_tb.result #call on get_max_id.sh to output the max _id of table from greenplum
if [ -s $v_url_file ]; then cat $v_url_file | while read line do v_gp_str="SELECT substr(max(id),10,24) as id from ods.tb${line} where createdate>(now()- INTERVAL '1 days')::TIMESTAMP;" v_table_id_gp="su - gpadmin -c \"psql -h ${v_gp_ip} -p ${v_gp_port} -U ${v_gp_u} -d ${v_gp_db} -c \\"${v_gp_str}\\"\" | sed -n '3p'" echo $v_table_id_gp > $v_gp_command chmod +x $v_gp_command . $v_gp_command > $v_gp_max_id v_max_id=
awk '{print $1}' $v_gp_max_id
v_update_maxid="UPDATE tb_data SET id='"${v_max_id}"' WHERE table_name='"${line}"';" mysql -A ${v_mysql_db} -h ${v_mysql_ip} -u${v_mysql_u} -p${v_mysql_p} -e "${v_update_maxid}" done echo "Success!" else echo "The config table of mysql is not empty!" fi