scfsd

10.41.152.56


重启tomcat
jtool -mrestart


查看tomcat是否启动
在tomcat的bin目录下面执行  ps -ef |grep tomcat


日志存放路径
cd /home/zxin10/was/tomcat/logs


打开tomcat日志
tail -f catalina.out


cs日志位置/home/zxin10/was/tomcat/logs/cs.log




打开cs日志打印文件
tail -f cs.log


打开一个文件:
vi xx.xx


保存文件:wq


查看当前路径 pwd




解压压缩包


unzip -o xxx.zip -d xxx/  




压缩
 tar -cvf uniportal.tar uniportal
 tar -cvf uniportal1230.tar uniportal


 tar -cvf uniportal0117.tar uniportal


 tar -cvf uniportal0120.tar uniportal
解压
tar -xvf uniportal.tar //解压 tar包




tar -xvf jdk1.7.0.tar//解压 tar包




tar -cvf ebaserdb.tar ebaserdb


tar -cvf dbbackup.tar dbbackup






打包备份
tar -cvf cs20161129.tar cs 


db10$ZTE


cs客户端放置在服务器的地址
/home/zxin10/iraishare/cs/download




String xxx;
xxx.trim();
去掉字符串xxx前后的空格


//截取list前n位,如果超过n个的话
list = list.subList(0, n);




var obj = {"str.key":123};
alert(obj["str.key"]);




生成6位随机数:(int)((Math.random()*9+1)*100000)


编码格式
dos
dos2unix




Xshell操作Mysql数据库命令
/home/ebaserdb/bin/mysql -S /home/ebaserdb/bin/xsql5518.sock -uroot -p'db10$ZTE


连接Mysql数据库


使用root用户
切换到Mysql用户: su - ebaserdb 
mysql -u'zxin_smap' -p'db10$ZTE'


mysql执行sql文件
mysql -uroot -p'db10$ZTE' --default-character-set=utf8 <setup/oas/ebaserdb/3.create_datas.sql 




/home/ebaserdb/bin/mysql -S /home/ebaserdb/bin/xsql5518.sock -uroot -p'db10$ZTE' --default_character_set=utf8 < /home/ebaserdb/sql/ZXCLOUD-iRAIV5.01.03_to_ZXCLOUD-iRAIV5.01.04.sql




连接Sybase数据库:
su - sybase
isql -Usa -Pcgsl123




Mysql命令  打开归属服务器
call proc_res_op_function(0, 1, 1501, 150177,'归属服务器管理');




查询uniportal管理门户super密码:
select * from zxinsys.oper_information2




BCP导出数据
1、建视图create view t_mac as
SELECT distinct t.mac,u.username FROM  irai_userportallog_09 u LEFT JOIN tempTable t ON (t.mac=u.usermac)
WHERE not (t.mac ='' OR t.mac is NULL)


2、命令行执行bcp raicfgdb..t_mac?out /home/sybase/test.csv -c -Usa -Pcgsl123 -Jcp936 -t","






连接云桌面拼接的连接参数:
 --usb-redirect enable:DenyUSB=class_03&subclass_01:AllowUSB=VID_05F9&PID_2202 -d enable -a enable -v enable -c enable -r enable -i enable -j enable -g enable --color-depth 32 --usb-disk all --usbredirecttype mdisk --stream x264 -t "h00001(yft2)" --uls 0 --dls 0 -f




 -h 10.47.181.36 -p 10031 -k 1QuwJhmi --usb-redirect enable:DenyUSB=class_03&subclass_01:AllowUSB=VID_05F9&PID_2202 -d enable -a enable -v enable -c enable -r enable -i enable -j enable -g enable --color-depth 32 --usb-disk all --usbredirecttype mdisk --stream x264 -t "h00001(yft2)" --uls 0 --dls 0 -f






17186763207




UAC认证返回结果:
{"code":{"code":"0000","msgId":"RetCode.Success","msg":"操作成功"},"bo":{"code":"5001","msg":"用户密码为初始密码,<a id=\"url\" href=\"http://it.zte.com.cn\">请修改</a>","enMsg":"The user password is the initial password.,<a id=\"url\" href=\"http://it.zte.com.cn\">Please modify it.</a>"},"other":{"message":"【VPN权限控制策略start】【通过:accountId或networkArea为空】【初始密码控制策略start】【不通过:employeeType为F】【用户密码为初始密码,<a id=\"url\" href=\"http://it.zte.com.cn\">请修改</a>,错误码5001】"}}




先UTF-8编码,再Base64编码
new String(Base64.encode(waterMark.getBytes("UTF-8")));




判断字符串以特定字符开头、结尾、包含:


String str;
str.stortsWith("String");
str.endsWith("class");
str.indexOf("ABC")!=-1;




license 目录:/home/zxin10/was/tomcat/webapps/uniportal/WEB-INF/classes








临时license:


{
  'common': {
    'userName': 'super',
    'createTime': '2017-06-16',
    'mac1': 'TEMP',
    'mac2': 'TEMP'
  },
  'iecs': {
    'cpuPhyNum': '4',
    'deadLine': '2017-06-16'
  },
  'irai': {
    'onlineUserNum': '8',
    'maxVmTimes': '3',
    'maxVmNum': '24',
    'deadLine': '2017-06-16'
  },
  'voi': {
    'onlineUserNum': '10',
    'deadLine': '2017-06-16'
  },
  'app': {
    'onlineUserNum': '10',
    'deadLine': '2017-06-16'
  }
}


和正常license的区别是mac地址,正常的license会有mac地址,临时的license的mac是TEMP






正则表达式:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)






 $('#log_export').on('click', function() {
var table = "";
$("#log_table").find("tr").each(function() {
var tr = "";
$(this).find("td").each(function(index) {
tr += $(this).html() + ",";
});
if (tr != "") {
table += tr + "#";
}
});
var param = {
table: table
};
$.post(path + "/paas/logExportDoc.action", param, function(data) {
if (data.success) {
$.umapMessager.alert(title, "导出日志成功!", "info");
} else {
$.umapMessager.alert(title, data.message, "info");
}
}, "json");
});


}






StringUtils的isBlank与isEmply
1. public static boolean isEmpty(String str)


  判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0


  下面是 StringUtils 判断是否为空的示例: 


  StringUtils.isEmpty(null) = true


  StringUtils.isEmpty("") = true


  StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理 


  StringUtils.isEmpty("   ") = false


  StringUtils.isEmpty("bob") = false


  StringUtils.isEmpty(" bob ") = false


  2. public static boolean isNotEmpty(String str)


  判断某字符串是否非空,等于 !isEmpty(String str)


  下面是示例: 


  StringUtils.isNotEmpty(null) = false


  StringUtils.isNotEmpty("") = false


  StringUtils.isNotEmpty(" ") = true


  StringUtils.isNotEmpty("         ") = true


  StringUtils.isNotEmpty("bob") = true


  StringUtils.isNotEmpty(" bob ") = true


  3. public static boolean isBlank(String str)


  判断某字符串是否为空或长度为0或由空白符(whitespace) 构成 


  下面是示例: 


  StringUtils.isBlank(null) = true


  StringUtils.isBlank("") = true


  StringUtils.isBlank(" ") = true


  StringUtils.isBlank("        ") = true


  StringUtils.isBlank("\t \n \f \r") = true   //对于制表符、换行符、换页符和回车符 


  StringUtils.isBlank()   //均识为空白符 


  StringUtils.isBlank("\b") = false   //"\b"为单词边界符 


  StringUtils.isBlank("bob") = false


  StringUtils.isBlank(" bob ") = false


  4. public static boolean isNotBlank(String str)


  判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(String str)


  下面是示例: 


  StringUtils.isNotBlank(null) = false


  StringUtils.isNotBlank("") = false


  StringUtils.isNotBlank(" ") = false


  StringUtils.isNotBlank("         ") = false


  StringUtils.isNotBlank("\t \n \f \r") = false


  StringUtils.isNotBlank("\b") = true


  StringUtils.isNotBlank("bob") = true


  StringUtils.isNotBlank(" bob ") = true






Spring中什么时候用@Resource,什么时候用@service


当你需要定义某个类为一个bean,则在这个类的类名前一行使用@Service("XXX"),就相当于讲这个类定义为一个bean,bean名称为XXX;


当需要在某个类中定义一个属性,并且该属性是一个已存在的bean,要为该属性赋值或注入时在该属性上一行使用@Resource(name="xxx"),相当于为该属性注入一个名称为xxx的bean。


===================================================================================================


Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。
  @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
  @Resource装配顺序
  1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
  2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
  3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
  4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;








跳板机:10.41.242.52   administrator/1qaz@WSX    Windows
        10.41.81.252  root/zte@123456            Linux


三地xen环境VMC信息:


南京:10.41.161.11    主备节点 10.41.161.12/13  root/cgsl123(下同)
深圳:10.5.133.13      主备节点 10.5.133.11/12
西安:10.90.21.35      主备节点 10.90.21.33/34


三地KVM环境VMC信息:


南京vmc浮动ip10.40.253.48    主备节点 10.40.253.49/50
深圳vmc浮动ip10.5.216.11     主备节点 10.5.216.12/13
西安cmc浮动ip10.90.8.11      主备节点 10.90.8.12/13






jquery validate 增加过滤特殊字符的方法:
jQuery.validator.addMethod("specialCharFilter", function(value, element) {  
    var pattern = new RegExp("[`~!@#$^&*()=|{}':;,.<>/?~!@#¥……&*()——|【】‘;:”“'。,、?%+  \"\\\\]");  
    var specialStr = "";  
    for(var i=0;i<value.length;i++){  
         specialStr += value.substr(i, 1).replace(pattern, '');  
    }  
      
    if( specialStr == value){  
        return true;  
    }  
      
    return false;  
});  




注:过滤 "\" 反斜杠   需要 \\\\






隐藏手机号码中间四位:
s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");   




隐藏邮箱:只显示@前面的首位和末位
s.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)", "$1****$3$4");






curl -l -H "Content-type: application/json" -X POST -d '{"eventType":"systemConfig"}' http://10.47.161.126:8080/cs/httppro_data.action


tcpdump -i eth1 port 8888   -s0 -w e.pcap 






把该变量声明为volatile(不稳定的),这就指示JVM,这个变量是不稳定的,每次使用它都到主存中进行读取。一般说来,多任务环境下各任务间共享的标志都应该加volatile修饰。 


Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。


volatile不保证原子操作,所以,很容易读到脏数据。


在两个或者更多的线程访问的成员变量上使用volatile。当要访问的变量已在synchronized代码块中,或者为常量时,不必使用。  




在并发编程中,我们通常会遇到以下三个问题:原子性问题,可见性问题,有序性问题


原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。


可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。


有序性:即程序执行的顺序按照代码的先后顺序执行。




还记得马云前几天在阿里做演讲的时候,我刚好坐在第一排,在40分钟慷慨激昂的演技后,大家都站起来热烈鼓掌,马云在大家的掌声中走下了演讲台,突然摔倒在了我的面前,那一刻我都没有去扶马云,就扶你!






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值