2018年5月

curl  -s -I -v -c /tmp/cookiec.txt "http://xxxx.cn/index.php?g=portal&m=index&a=update_rule_cache"
curl  -s -I -v -b /tmp/cookiec.txt "http://xxxx.cn//index.php?g=&&g=rule&m=Index&a=auto_check_result&cache=false"

第一次是登录程序,获得并保存cookie,第二次就是使用保存的cookie访问需要验证登录的页面。

这周技术部出了一个数据库题给大家做,自己做这个题也补习了一些知识。

#group_concat 多行的列结果合并到一行 , 结合 group by userid 达到 。
#concat_ws 可以指定符号的字符串(列合并)连接,本例中用 - 连接 省 市 区 ,多个地区之间用默认的逗号。
#find_in_set 用于代替in查询 , in查询在子查询表达式中,如果in的其中一个数据为null,不管其它条件是否有数据,整个表达式的结果就是null,在此使用find_in_set替代。
#子查询中或通过substring处理后的值,in还有可能只返回第一个而非全部。

select companyid as 公司编号 ,userid as 用户编号 ,group_concat( (select concat_ws('-', (select group_concat(b.areaname separator '-') from area b where  find_in_set (b.areaid,a.arrparentid)),a.areaname) from area a where a.areaid = u_a.areaid)  ) as 负责区域 from user_area u_a where u_a.companyid = 52 group by userid

运行效果

图片1.jpg

原题目

/*
    三个表:
    user表:用户表,(公司id,会员id,会员名)(公司id和会员id共同为主键)
    companyid   userid        name
    1            1132        张三
    2            1133        李四
    2            1196        王五
    2            1197        赵六
    
    user_area表:用户地区表,(会员id,公司id,负责地区id,父级地区id)(会员id,公司id,地区id 共同为主键)
    userid        companyid    areaid        parentareaid
    1132        1            3            3
    1132        1            36            4
    1132        1            168            4
    1135        4            1            1
    1135        4            2            2
    1135        4            3            3
    
    area表:地区信息表(地区表只有两级结构,即省和市/区),(地区id,地区名,父级地区id,所有父级地区id,是否有下级地区,所有下级地区id)(areaid为主键)
    areaid    areaname    parentid    arrparentid        haschild    arrchild
    1        浙江                0            0                1            1,37,53,54,55,56,57,58,59,60,62,63
    2        北京                0            0                1            2,146,147,150,151,152,153,154,155,156
    3        上海                0            0                1            183,185,186,187,188,189,190,191,192
    36        湖州市            1            0,1                1            36,47,48,49,50,51
    37        杭州市            1            0,1                1            37,53,54,55,56,57,58,59,60,62,63,64,65,66
    
    要求根据companyid 获取各个会员所负责的省级地区,(所有数据不是真实数据,三个表可以根据字段名看出关联关系)
    
    所得结果例如:
    companyid    userid    areaname
    2            1133    
    2            1196    浙江,上海,山东
    2            1197    
    
*/
    
/*
修改一条数据 3187 得到区
UPDATE  `test`.`user_area` SET  `areaid` =  '3187' WHERE  `user_area`.`userid` =1330 AND  `user_area`.`companyid` =52 AND  `user_area`.`areaid` =3183; 
*/    

也不用分析,决定就是这 个问题。

# cat /etc/pam.d/crond 
account    required   pam_access.so
account    include    password-auth
#session    required   pam_loginuid.so  #注释此行
session    include    password-auth
auth       include    password-auth

su root
cd /etc/yum.repos.d
wget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo
yum -y install chromium

01.jpg

这个时候 ,是不能以root运行google浏览器的
桌面图标 右键属性
在命令处添加 添加--user-data-dir

02.jpg

如果直接打开mysql日志文件,是mysql日志格式的,中文和一些字符是乱码形式的。

通过mysqlbinlog打开才有标准的格式文本。

结合这个命令,查找出现特定字符的sql,可定位 一些数据篡改记录问题。

脚本中,有000001 到 000997 个日志文件。

#!/bin/sh
for((i=1;i<=997;i++));
do 

#echo $i
filename=$i
len=${#i}
a=`printf "%06d\n" $i`
filename="mysql-bin."$a
echo $filename
/usr/local/mysql/bin/mysqlbinlog --database=dbname /home/mysql/data/$filename | grep 娱乐国际 >> check_log.txt

done