#!bin/bash
----------------------Oracle 笔记-------------------------------------------
imp user/paw e:\auth_log.dmp full=y ignore=y
update sys_flush set flush_time=to_date('20150820'||substr(to_char(flush_time,'yyyy-mm-dd hh24:mi:ss'),-9,9),'yyyy-mm-dd hh24:mi:ss')
select to_date('20150820'||substr(to_char(flush_time,'yyyy-mm-dd hh24:mi:ss'),-9,9),'yyyy-mm-dd hh24:mi:ss')
from sys_trans_flush --修改年月日,保留时分秒
select to_timestamp('20160811'||substr(to_char(trans_time,'yyyyMMdd hh24:mi:ss.ff3'),9),'yyyyMMddhh24missff') ss from sys_flush
select org_code from sys_org start with org_code='1001' connect by nocycle prior org_code=parent_code --递归查询:从根节点往下查
select org_code from sys_org start with org_code='7701' connect by nocycle org_code=prior parent_code --递归查询:从节点往根查找
----------查看用户下的表信息---------分区表--------
select * from user_tables -- tablespace_name字段为空的是分区表
select * from user_tab_partitions where table_name='SYS_TRANS_HIS' ---分区信息存在此表中
select partition_name from user_tab_partitions where partition_name like 'AUTHLOG_PART_%' --查询分区
alter table trans_flush_his drop partition TRANSLOG_PART_20160322 ----删除分区
ALTER TABLE auth_log_his EXCHANGE PARTITION AUTHLOG_PART_20160731 WITH TABLE bio_auth_log including indexes; --交换分区
select count(*) from auth_log_his partition(AUTHLOG_PART_20160325); ---查看单个分区数据
-----------------索引-----------
select * from nls_database_parameters; 查看数据库的字符集
select * from user_indexes --查询现有的索引
select * from user_ind_columns --可获知索引建立在那些字段上
select table_name,index_name, status from user_indexes where table_name in ('AUTH_LOG','SYS_TRANS');
select index_name,partition_name,status from user_ind_partitions where partition_name in('AUTHLOG_PART_20161117','TRANSLOG_PART_20161117'
,'TRANSLOG_PART_20161117','AUTHLOG_PART_20161117');---查看分区表的单个分区索引状态
select * from auth_log_his partition(AUTHLOG_PART_20160515); ----查看分区表中单个分区的数据
alter index USR.TRANS_FLUSH_INDEX rebuild online; --- 重建索引
------------------------数据泵---------------------------------
create DIRECTORY datadump as '/home/oracle/'; --创建目录位置(建议放在归档目录下)
grant read,write on DIRECTORY datadump to yyq; ---给应用用户授予读写权限
expdb user/pwd DIRECTORY ='datadump' DUMPFILE=yyq.dmp; ---此命令会在已定义的目录(/home/oracle)中产生导出的文件(yyq.dmp)
导出用户
expdp user/pwd directory=dump_backup dumpfile=yyq%U.dmp logfile=yyq.log PARALLEL=4 schemas=user;
导入用户
impdp user/pwd directory=dump_backup dumpfile=yyq%U.dmp logfile=yyq.log PARALLEL=4 remap_schema=user:user;
多线程并发导出:
--------------标准-------------查看表空间-------------------------------
select a.tsname,round(a.total_m,2) total_mb,
round(nvl(b.free_m,0),2) free_mb,
round(nvl((b.free_m/a.total_m)*100,0),2) free_percentage from
(select tablespace_name tsname,sum(bytes)/1024/1024 total_m from dba_data_files group by tablespace_name) a,
(select tablespace_name tsname,sum(bytes)/1024/1024 free_m from dba_free_space group by tablespace_name) b
where a.tsname=b.tsname(+)
--and a.tsname like 'USERS%'
--and ((b.free_m<5 or b.free_m is null)
--or (b.free_m/a.total_m<0.3 or b.free_m is null))
order by 4 desc;
--------------------sql 脚本------------------------------------------------
sqlplus -s yyq/yyq<<EOF
spool create_index.log append;
select to_char(sysdate,'yyyymmddhhmmiss') from dual;
insert into sys_index(id,channel_code,channel_name,channel_status)
values(sys_index_id.nextval,'999','系统','0');
select * from sys_index;
spool off;
disconnect;
quit;
EOF
----------------------------------------------------------------
--------------------Liunx 笔记--------------------------------------------
scp run.sh user@10.202.37.20:/yyq/tmp/run.sh远程拷贝
java -cp .:./tt.jar com.nes.utils.Match 执行java程序jar文件的类main方法
useradd -g weblogic -d /yyq/ yyq添加用户指定组与用户目录
chown -R yyq:weblogic /yyq/wzj 改变文件所属用户
zip -r jdk_${today}.zip jdk_enc* E_API* --压缩多个文件
unzip -o jdk.zip ---强制解压覆盖,不用询问
mkdir -p /yyq/update/old/ ----级联建立目录
ls -lrt /home/yyq/batch/lib/ |grep -E 'ES|jdk' | tee -a $log_path ---过滤多个文件
cp yyq_APP_BACKUP.sh yyq_APP_DEPLOY.sh log/ ----复制多个文件到一个目录下
tar -cvf w20160505_0001.tar.Z ./20160505_1 打包文件夹及文件
tar -xvf w20160505_0001.tar.Z 解压包
ifconfig 查看IP地址
locale 查看系统字符集
env 查看环境变量
env | grep tft
echo $PATH 输出环境变量path的值
ps -ef| grep FaceServer 查看进程
netstat -anp 查看端口及进程id
rpm -q mysql 查看mysql是否安装
df -Th 查看磁盘使用情况
du -sh ./yyq/tft 查看某个文件的大小
du -sh ./* 查看目录下所有文件的大小*/
cal 2 2015 查看月历2015年2月
service network restart 启动服务
service kudzu start 新装硬盘后运行计算机自动识别
chkconfig --list |more 查看系统默认运行的服务
stat yyq.log |sed -n '7p' 获取第七行,状态更改时间
:g/^/s//\=line('.').''/ 编辑vim中为每行行首增加行号
find . -name "B_*" -mtime +29 |xargs rm删除30天之前的图片
touch -m -t 201607181010 yyq.log 修改文件的modifytime时间
for n in {1..10} 循环10次,从1到10
----------------------------------------awk -------------------------------------------------------------
cat ./log/20160927_3.log |awk '/avg/'|awk -F-'{print $NF}'|awk '{tot+=$1}; END {print tol/NR}'
文本内容:求avg的平均值
Thread-2---耗时:596
Thread-1---耗时:643
Thread-0---耗时:583
Thread-0--avg used ---587
Thread-2---耗时:598
Thread-2--avg used ---613
Thread-1---耗时:635
Thread-1--avg used ---647
---------------------------------------------------------------------------------------------
$ grep "trident" missiles 2>/dev/null
这样所有的错误输出都输送到了/dev/null中(实际就上是系统的垃圾箱),不再出现在屏幕上。
$ cleanup >cleanup.out 2>&1 在合并标准输出和标准错误到相同的文件,
$ cat account_qtr.doc account_end.doc 1>accounts.out 2>accounts.err 两个文件合并到accounts.out文件中,现在如果出现了错误,相应的错误将会保存在accounts.err文件中
$ mv /apps/bin /apps/dev/bin && rm -r /apps/bin
在上面的例子中,/apps/bin目录将会被移到/apps/dev/bin目录下,如果它没有被成功执行,就不会删除/apps/bin目录。
&&语法:“如果这个命令执行成功&&那么执行这个命令”。
||语法:“如果这个命令执行失败了||那么就执行这个命令”。
$ sort quarter_end.txt > quarter.sorted && (cp quarter.sorted /logs/quarter.sorted ;lp quarter.sorted)
使用命令组合的方法,如果s o r t命令执行成功了,可以先将输出文件拷贝到一个日志区,然后再打印
linux正则:句点“.”可以匹配任意单字符,使用反斜杠\屏蔽一个特殊字符的含义:特殊字符:$ . '' "" * [] ^ | () \+?
匹配A至少4次,使用:A \ { 4 , \ } B 可以得结果A A A A B或A A A A A A A B,
注意^符号的使用,当直接用在第一个括号里,意指否定或不匹配括号里内容。
[^a-zA-Z] 匹配任一非字母型字符,
如果要抽出记录,使其行首不是4 8,可以在方括号中使用^记号,表明查询在行首开始。grep'^[^48]' data.f
在grep命令中输入字符串参数时,最好将其用双引号括起来;在调用变量时,也应该使用双引号,诸如:grep"$myvar" 文件名,如果不这样,将
没有返回结果。在调用模式匹配(正则)时,应使用单引号。
常用的 grep 选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
$ grep '48\>' data.f 现在精确抽取48
48 Dec 3BC1997 LPSX 68.0
使用g r e p抽取精确匹配的一种更有效方式是在抽取字符串后加\>。衷诰烦槿?8
48 Dec 3BC1997 LPSX 68.0
使用g r e p抽取精确匹配的一种更有效方式是在抽取字符串后加\>。
----------------------------java-------------------------------------
protected MyBatisService(Class<?> domainClass)//构造方法,参数实体类名:SysUser.class
{ this(domainClass.getName());//反射,获取全类名作为mybatis的XML文件的namespace唯一标示文件,限定名:com.wzj.cebfrs.dao.SysUserDao.java
}
protected MyBatisService(String namespace)
{
this.mybatisNameSpace = namespace;}
protected static String fillSqlId(String namespace, String sqlId)
{
if (!StringUtils.contains(sqlId,'.')) {
return namespace +'.' + sqlId;
}
return sqlId;
}
*************************************************** xml操作:*****************************************************************
1,创建xml文件:Documentdoc=DocumentHelper.createDocument();
Element books=doc.addElelment();
Element title=books.addElement("book");
title.addAttribute("id","001");
示例:<?xml version="1.0" encoding="UTF-8" ?>
<book id="001" />
<title>Harry potter</title>
2,解析xml文件:SAXReaderreader=new SAXReader();
Document doc=reader.read("D:\\test.xml");
Element root=doc.getRootElement();
List<Element> childElements=root.elements();
for(Element child:childElements){
//未知属性名情况下
List<Attribute> attList=child.attributes();
for(Attribute attr:attList){
System.out.println(attr.getName()+":"+attr.getValue());
}
//未知子元素名情况下
List<Element> elementList=child.elements();
for(Element ele:elementList){
System.out.println(ele.getName()+":"+ele.getText());
}System.out.println();
}
示例: id : 001
title :Harry potter
author :JK.Rowling
******************************************************** IO流的操作:************************************************************
字节流:
输入流:IntputStream,FileIntputStream,ByteArrayInputStream,高级流:BufferedInputStream,DataInputStream,ObjectInputStream,FilterInputStream
输出流:OutputStream,FileIntputStream,ByteArrayOutputStream高级流:BufferedOutputStream,DataOutputStream,ObjectOutputStream,FilterOutputStream
Class类的流方法:public InputStream getResourceAsStream(String name)
ClassLoader.getSystemResourceAsStream(java.lang.String)。 静态方法,类名.方法();
public static InputStream getSystemResourceAsStream(String name)
字节流中方法:read();
read(byte[] b) ;
read(byte[] b,int off, int len)将输入流中最多len 个数据字节读入byte 数组,将读取的第一个字节存储在元素b[off] 中,下一个存储在b[off+1] 中。
示例:byte[] tempbytes=new byte[100];
int byteread=0;
InputStream in=new FileInputStream(fileName);
//读入多个字节到字节数组中,byteread为一次读入的字节数
while((byteread=in.read(tempbytes))!=-1){
System.out.write(tempbytes,0,byteread);
}
字符流:
输入流:Reader,FileReader,StringReader, 高级流:InputStreamReader,BufferedReader(方法:readLine())
输出流:Writer,FileWriter,StringWriter, 高级流:OutputStreamWriter,BufferedWriter,PrintWriter
* A追加文件:使用RandomAccessFile
* B追加使用:FileWriter(File file,boolean append)
*
* C追加使用:public FileOutputStream(String name,boolean append)
按照指定编码追加写入文件中:
PtintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName,true),"GBK")));
out.println(data);