Yo

Tread on the ground

Subscribe to RSS feed

Sticky post

script 集合

, , ,

进程类:
ps -eal | awk '{ if ($2 == "Z") {print $4}}' |  kill -9

ps -aef | awk '{ if ($2 == "x") {print $1}}' |  kill -9


日常操作:
$ cp filename{,.bak}



文件系统:
find . -type d | perl -ne 'print "mkdir " . $_' > make_tree.sh 


网络:
watch -n 1 "/sbin/ifconfig eth0 | grep bytes"

FreeBSD Intro [更新]

, ,

由于Debian GNU/kFreeBSD此项目,使我对BSD好奇心大增。Debian GNU/kFreeBSD的上游发行版是FreeBSD因此决定了先去了解FreeBSD是怎个样子;)


FreeBSD用ports去管理package和gentoo的emerge很像很像很像。。。原始简单暴力
例如:安装nano editor
cd /usr/ports/editor/nano
make install clean

ports会自动解决依赖,对每一个依赖的package进行download编译

在使用ports需要注意的是ports在解决依赖的同时也会对你提供软件编译的选项设置有时如果你不小心将选项选错你可以进入相应的软件目录里面
make config

但如果这个方法也失效的时候你就需要直接进入
/var/db/ports/xxx/
直接修改options文件

由于FreeBSD默认csh,从Debian Linux默认bash转向到FreeBSD默认csh十分之不习惯
cd /usr/ports/shells/bash-completion
make install clean

并使每次的登录生效
chpasswd user

将默认的/bin/csh改为/usr/local/bin/bash


FreeBSD的网络配置像GENTOO一样主要集中在/etc/rc.conf
最简单的样例
#bce0
ifconfig_bce0="inet 10.17.36.25 netmask 255.255.255.128"
defaultrouter="10.17.36.126"

修改后需要
/etc/rc.d/netif restart
/etc/rc.d/routing restart

刷新网络配置,使配置生效

2011/08/03 工作日志

, ,

DDL啊,把某此条件的表全部DDL出来


#!/bin/ksh

snaspot=$(date +"%Y%m%d%H%M%S")

sqlplus -S "sys/sys  as sysdba" << !
set feedback off
set serveroutput on
set pages 0
set lines 100
set heading off
set timing off
set autot off
set echo off
set show off
spool get_ddl_table_$snaspot.sql
select  'select DBMS_METADATA.get_ddl(''TABLE'','''||TABLE_NAME||''','''||OWNER||''') from DUAL;' 
from all_tables 
where OWNER in('USER')
and num_rows > 100000
order by num_rows asc;
spool off
exit
!

sqlplus -S "sys/sys  as sysdba" << !
set feedback off
set serveroutput on
set pages 32767
set lines 32767
set pagesize 100
set long 10000
set heading off
set timing off
set autot off
set echo off
set show off
spool ddl_$snaspot.sql
@get_ddl_table_$snaspot.sql
spool off
exit
!

rm get_ddl_table_$snaspot.sql


2011-07-28 日志

, ,

备份备份



#!/bin/ksh

snaspot=$(date +"%Y%m%d%H%M%S")

sqlplus -S "sys/oracle as sysdba" << !
set feedback off
set serveroutput on
set pages 0
set lines 100
set heading off
set timing off
set autot off
set echo off
set show off
spool parameters_a_$snaspot.csv
select '-------------------------------------oracle_parameters-----------------------------------' from DUAL;
set feedback on
select x.ksppinm||','||y.ksppstvl value from  sys.x\$ksppi x, sys.x\$ksppcv y where x.inst_id=userenv('Instance') and y.inst_id=userenv('Instance') and x.indx=y.indx and x.ksppinm like '%%' and y.ksppstdf = 'FALSE' order by translate(x.ksppinm,'_','');
set feedback off
select  '---------------------------------end_of_oracle_parameters--------------------------------' from DUAL;

select  '----------------------------------NUMBER_OF_USERTABLES-----------------------------------' from DUAL;
set feedback on
select OWNER||','||count(*) from all_tables where  OWNER in ('USER01','USER02') GROUP BY OWNER order BY OWNER;
set feedback off
select  '---------------------------------NUMBER_OF_ALL_INDEXES---------------------------------' from DUAL;
set feedback on
select OWNER||','||count(*) from all_indexes where  OWNER in ('USER01','USER02') GROUP BY OWNER order BY OWNER;
set feedback off
select  '---------------------------------NUMBER_OF_DBA_INDEXES---------------------------------' from DUAL;
set feedback on
select OWNER||','||count(*) from dba_indexes where  OWNER in ('USER01','USER02') GROUP BY OWNER order BY OWNER;
set feedback off
select  '-----------------------------------------------------------------------------------------' from DUAL;
select  '-------------------------------------------table-----------------------------------------' from DUAL;
select  'TABLE_NAME,OWNER,PCT_FREE,INITRANS,LOGGING' from DUAL;
set feedback on
select TABLE_NAME||','||OWNER||','||PCT_FREE||','||INI_TRANS||','||LOGGING  from  all_tables where  OWNER in ('USER01','USER02'); 
set feedback off
select  '---------------------------------------end_of_table--------------------------------------' from DUAL;
select  '-----------------------------------------------------------------------------------------' from DUAL;
select  '------------------------------------------index------------------------------------------' from DUAL;
select  'INDEX_NAME,OWNER,INDEX_TYPE,PARTITIONED,PCT_FREE,INITRANS,LOGGING' from DUAL;
set feedback on
select  INDEX_NAME||','||OWNER||','||INDEX_TYPE||','||PARTITIONED||','||PCT_FREE||','||INI_TRANS||','||LOGGING  from  all_indexes where OWNER in ('USER01','USER02');
set feedback off
select  '---------------------------------------end_of_index--------------------------------------' from DUAL;
spool off
exit
!

sqlplus -S "sys/oracle as sysdba" << !
set feedback off
set serveroutput on
set pages 0
set lines 100
set heading off
set timing off
set autot off
set echo off
set show off
spool parameters_m_$snaspot.csv
select  '-----------------------------------------------------------------------------------------' from DUAL;
select  '--------------------------------------table_pctfree--------------------------------------' from DUAL;
select  'TABLE_NAME,OWNER,PCT_FREE' from DUAL;
set feedback on
select TABLE_NAME||','||OWNER||','||PCT_FREE  from  all_tables where  PCT_FREE != 10 and OWNER in ('USER01','USER02'); 
set feedback off
select  '--------------------------------------table_initrans--------------------------------------' from DUAL;
select  'TABLE_NAME,OWNER,INI_TRANS' from DUAL;
set feedback on
select TABLE_NAME||','||OWNER||','||INI_TRANS from  all_tables where INI_TRANS != 2 and OWNER in ('USER01','USER02');
set feedback off
select  '--------------------------------------table_logging--------------------------------------' from DUAL;
select  'TABLE_NAME,OWNER,LOGGING' from DUAL;
set feedback on
select  TABLE_NAME||','||OWNER||','||LOGGING from  all_tables where  LOGGING = 'NO' and OWNER in ('USER01','USER02');
set feedback off
select  '---------------------------------------end_of_table--------------------------------------' from DUAL;
select  '-----------------------------------------------------------------------------------------' from DUAL;
select  '--------------------------------------index_pctfree--------------------------------------' from DUAL;
select  'INDEX_NAME,OWNER,PCT_FREE' from DUAL;
set feedback on
select  INDEX_NAME||','||OWNER||','||PCT_FREE from  all_indexes where OWNER in ('USER01','USER02') AND  PCT_FREE != 10;
set feedback off
select  '--------------------------------------index_initrans--------------------------------------' from DUAL;
select  'INDEX_NAME,OWNER,INITRANS' from DUAL;
set feedback on
select INDEX_NAME||','||OWNER||','||INI_TRANS from  all_indexes where OWNER in ('USER01','USER02') AND INI_TRANS != 2;
set feedback off
select  '---------------------------------------end_of_index--------------------------------------' from DUAL;
spool off
exit
!


sqlplus -S "sys/oracle as sysdba" << !
set lines 100
set pages 0
set serveroutput off
set heading off
set echo off
set termout off
set feedback off
spool rollback_tables_$snaspot.sql

select 'alter table "'||owner ||'"."'||table_name||'"  PCTFREE 10;' from all_tables  where  PCT_FREE != 10 and OWNER in ('USER01','USER02'); 


select 'alter table "'||owner ||'"."'||table_name||'" INITRANS 2;' from all_tables where INI_TRANS != 2 and OWNER in ('USER01','USER02');


select 'alter table "'||owner ||'"."'||table_name||'" logging;' from all_tables where  LOGGING = 'NO' and OWNER in ('USER01','USER02');
spool off;
exit
!



sqlplus -S "sys/oracle as sysdba" << !
set lines 100
set pages 0
set serveroutput off
set heading off
set echo off
set termout off
set feedback off
spool rollback2_tables_$snaspot.sql

select 'alter table "'||owner ||'"."'||table_name||'"  PCTFREE  '||pct_free||';' from all_tables  where  PCT_FREE != 10 and OWNER in ('USER01','USER02'); 


select 'alter table "'||owner ||'"."'||table_name||'" INITRANS '||ini_trans||';' from all_tables where INI_TRANS != 2 and OWNER in ('USER01','USER02');

spool off;
exit
!

2011/07/20 工作日志

, ,

  • 由于乱码无法删除表



今天碰到了一些奇怪的表名,也不知道怎样来影响了脚本运作,由于这些表也没什么用所以想删除发现直接想删也删不了,估计是用全角和半角的问题。
最后,在USER加上双引和表名也加上双引删除之,基本知识啊
drop table "USER"."TABLE_BM_??????"; 

2011-06-30 工作日记

CREATE OR REPLACE PROCEDURE gsta_check_nologging_tables
AS
GSTA_CHECK_SQL varchar(500);
NOLOGGING_NAME varchar(100);
NOLOGGING_OWNER varchar(100);

cursor c_nologging is
select TABLE_NAME,OWNER from all_tables where LOGGING = 'NO' and TABLESPACE_NAME != 'USERS' AND TABLESPACE_NAME != 'SYSAUX' AND TABLESPACE_NAME != 'UNDOTBS1' AND TABLESPACE_NAME != 'SYSTEM';

BEGIN


open c_nologging;

loop
fetch c_nologging into NOLOGGING_NAME,NOLOGGING_OWNER;
exit when c_nologging%notfound;

GSTA_CHECK_SQL := 'ALTER TABLE '|| NOLOGGING_OWNER || '.' || NOLOGGING_NAME || ' logging';

dbms_output.put_line(GSTA_CHECK_SQL);

end loop ;
close c_nologging;
END;

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

CREATE OR REPLACE PROCEDURE gsta_check_nologging_indexes
AS
GSTA_CHECK_SQL varchar(500);
NOLOGGING_NAME varchar(100);
NOLOGGING_OWNER varchar(100);

cursor c_nologging is
select INDEX_NAME,OWNER from all_indexes where LOGGING = 'NO' and TABLESPACE_NAME != 'USERS' AND TABLESPACE_NAME != 'SYSAUX' AND TABLESPACE_NAME != 'UNDOTBS1' AND TABLESPACE_NAME != 'SYSTEM';

BEGIN


open c_nologging;

loop
fetch c_nologging into NOLOGGING_NAME,NOLOGGING_OWNER;
exit when c_nologging%notfound;

GSTA_CHECK_SQL := 'ALTER INDEX '|| NOLOGGING_OWNER || '.' || NOLOGGING_NAME || ' logging';

dbms_output.put_line(GSTA_CHECK_SQL);

end loop ;
close c_nologging;
END;


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


begin
-- Call the procedure
gsta_check_nologging_tables;
gsta_check_nologging_indexes;
end;


记录,记录。其实做个小变化可以完成很多东东