dba_开头
dba_users 数据库用户信息
dba_segments 表段信息
dba_extents 数据区信息
dba_objects 数据库对象信息
dba_tablespaces 数据库表空间信息
dba_data_files 数据文件设置信息
dba_temp_files 临时数据文件信息
dba_rollback_segs 回滚段信息
dba_ts_quotas 用户表空间配额信息
dba_free_space数据库空闲空间信息
dba_profiles 数据库用户资源限制信息
dba_sys_privs 用户的系统权限信息
dba_tab_privs用户具有的对象权限信息
dba_col_privs用户具有的列对象权限信息
dba_role_privs用户具有的角色信息
dba_audit_trail审计跟踪记录信息
dba_stmt_audit_opts审计设置信息
dba_audit_object 对象审计结果信息
dba_audit_session会话审计结果信息
dba_indexes用户模式的索引信息
user_开头
user_objects 用户对象信息
user_source 数据库用户的所有资源对象信息
user_segments 用户的表段信息
user_tables 用户的表对象信息
user_tab_columns 用户的表列信息
user_constraints 用户的对象约束信息
user_sys_privs 当前用户的系统权限信息
user_tab_privs 当前用户的对象权限信息
user_col_privs 当前用户的表列权限信息
user_role_privs 当前用户的角色权限信息
user_indexes 用户的索引信息
user_ind_columns用户的索引对应的表列信息
user_cons_columns 用户的约束对应的表列信息
user_clusters 用户的所有簇信息
user_clu_columns 用户的簇所包含的内容信息
user_cluster_hash_expressions 散列簇的信息
v$开头
v$database 数据库信息
v$datafile 数据文件信息
v$controlfile控制文件信息
v$logfile 重做日志信息
v$instance 数据库实例信息
v$log 日志组信息
v$loghist 日志历史信息
v$sga 数据库SGA信息
v$parameter 初始化参数信息
v$process 数据库服务器进程信息
v$bgprocess 数据库后台进程信息
v$controlfile_record_section 控制文件记载的各部分信息
v$thread 线程信息
v$datafile_header 数据文件头所记载的信息
v$archived_log归档日志信息
v$archive_dest 归档日志的设置信息
v$logmnr_contents 归档日志分析的DML DDL结果信息
v$logmnr_dictionary 日志分析的字典文件信息
v$logmnr_logs 日志分析的日志列表信息
v$tablespace 表空间信息
v$tempfile 临时文件信息
v$filestat 数据文件的I/O统计信息
v$undostat Undo数据信息
v$rollname 在线回滚段信息
v$session 会话信息
v$transaction 事务信息
v$rollstat 回滚段统计信息
v$pwfile_users 特权用户信息
v$sqlarea 当前查询过的sql语句访问过的资源及相关的信息
v$sql 与v$sqlarea基本相同的相关信息
v$sysstat 数据库系统状态信息
all_开头
all_users 数据库所有用户的信息
all_objects 数据库所有的对象的信息
all_def_audit_opts 所有默认的审计设置信息
all_tables 所有的表对象信息
all_indexes所有的数据库对象索引的信息
session_开头
session_roles 会话的角色信息
session_privs 会话的权限信息
index_开头
index_stats 索引的设置和存储信息伪表
dual 系统伪列表信息
Oracle 10g 错误“ORA-00988 口令缺失或无效”终极解决办法!
如果在安装Oracle的时候出现如下问题:创建数据库完成让你输入密码的时候弹出"ora-00988 缺少或无效口令"的对话框如下图
这是因为Oracle对密码的要求如下:
系统用户(SYS、SYSTEM)口令长度不能小于7个字符第一个字符不能为数字且全部字符中应该为字母和数字混合
解决方法:
运行 cmd 按如下输入命令 sqlplus / as sysdba ——— 注意以上的语句中"/"两边都要有空格哦!——— 以sys登陆 alter user 用户名 account unlock; ——— 解除锁定 alter user 用户名 identified by 密码;————-修改密码然后用你改好的密码登陆就行 举例:sqlplus / as sysdbaalter user sys account unlock;alter user sys identified by manager;希望你看过本文章后能顺利解决问题!
windows下查看在线用户命令
如果看不在管理员在不在线,遇到用户登录提示的软件就挂了。
光忘。
1.query user
2.tasklist /V 看进程信息,
linux 内核模块(LKM)检测工具
在生产环境中,系统被入侵后,黑客会放置自己的后门。LKM后门和传统的后门不一样,它可以通过隐藏进程、端口、文件的方式隐藏自己,不被管理员轻易发现,也就是常说的rootkit技术。
LKM是什么?load kernel module,可加载内核模块的缩写。
xlkm一个脚本,通过对准上线机器现加载内核模块进行备份,来判别模块是否替换、篡改。
主要思路就是:列出系统加载的内核模块并备份,对现加载的模块的md5校验并备份其信息,然后进行对比。
实现起来比较简单,我shell也不是很好,大家就凑活着看吧。
#!/bin/bash
#code:key1088
#mail:key1088@163.com
#bash –version
#GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
#Copyright (C) 2005 Free Software Foundation, Inc
if [ $(whoami) != "root" ];
then
echo "Not root"
exit 0
fi
xlkmroot=/usr/local/xlkm
help(){
echo -e " 33[32m List:"
echo "[1.Start LKM List Backup]"
echo "[2.Test LKM List Change]"
echo "[3.Delete All Backup]"
echo "[4.Quit]"
echo -e " 33[0m"
}
SETUPXLKM(){
if test -d $xlkmroot ;then
echo "LKM exist Backup!!"
exit 1
fi
mkdir $xlkmroot
chmod 700 $xlkmroot
}
DELXLKM(){
rm -rf $xlkmroot
echo
echo -e " 33[34mDelete XLKM Backup Sccessfully 33[0m"
echo
}
START(){
while [ -z $passwd ]
do
echo
echo -n "Input encrypt passwd[No Null]:"
read passwd
done
echo "WAITing….."
lsmod > $xlkmroot/lkmlist.main
for i in $(modprobe -l)
do
md5sum $i >> $xlkmroot/lkmfile.md5.main
done
cd $xlkmroot
zip -P $passwd mainfile.zip ./.main > /dev/null
rc=$?
if [ "$rc" == 0 ];
then
echo
echo -e " 33[34mLKM List Backup Successfully! 33[0m"
echo
else
echo
echo -e " 33[34mBeijule! Error! 33[0m"
echo
fi
rm -f $xlkmroot/lkm > /dev/null
}
LKMCHANGE(){
echo "Test LKM Change"
cd $xlkmroot
while [ "$ra" != 0 ]
do
echo
echo -n "Input encrypt passwd[No Null]:"
read passwd
unzip -P $passwd mainfile.zip > /dev/null 2>&1
ra=$?
if [ "$ra" != 0 ];then echo "Invalid password!! "; fi
done
echo "WAITing….."
lsmod > $xlkmroot/lkmlist.new
for i in $(modprobe -l)
do
md5sum $i >> $xlkmroot/lkmfile.md5.new
done
echo "LKM List Change:"
echo -e " 33[31m"
diff $xlkmroot/lkmlist.main $xlkmroot/lkmlist.new
echo -e " 33[0m"
echo "LKM File Md5 Change:"
echo -e " 33[31m"
diff $xlkmroot/lkmfile.md5.main $xlkmroot/lkmfile.md5.new
echo -e " 33[0m"
rm -f *.new .main
}
while :
do
help
echo -n "Input List num:"
read x
case "$x" in
1)
SETUPXLKM
START
;;
2)
LKMCHANGE
;;
3)
DELXLKM
;;
4)
exit 0
;;
)
echo -e " 33[31mError !!!!!"
echo -e "Pleae input [1-4] list option 33[0m"
;;
esac
done
awk中的时间函数strftime() systime()
systime函数返回从1970年1月1日开始到当前时间(不计闰年)的整秒数
利用strftime()函数格式化时间
实例:
$ awk '{ now = systime(); print now }'strftime函数使用C库中的strftime函数格式化时间。格式如下:
systime( [format specification][,timestamp] )Table 3. 日期和时间格式说明符
格式描述%a星期几的缩写(Sun)%A星期几的完整写法(Sunday)%b月名的缩写(Oct)%B月名的完整写法(October)%c本地日期和时间%d十进制日期%D日期 08/20/99%e日期,如果只有一位会补上一个空格%H用十进制表示24小时格式的小时%I用十进制表示12小时格式的小时%j从1月1日起一年中的第几天%m十进制表示的月份%M十进制表示的分钟%p12小时表示法(AM/PM)%S十进制表示的秒%U十进制表示的一年中的第几个星期(星期天作为一个星期的开始)%w十进制表示的星期几(星期天是0)%W十进制表示的一年中的第几个星期(星期一作为一个星期的开始)%x重新设置本地日期(08/20/99)%X重新设置本地时间(12:00:00)%y两位数字表示的年(99)%Y当前月份%Z时区(PDT)%%百分号(%) 实例:
- $ awk '{ now=strftime( "%D", systime() ); print now }'
- $ awk '{ now=strftime("%m/%d/%y"); print now }'
php 添加扩展模块
线上想用zabbix做监控。php安装的时候有很多模块没有安装,mbstring就是其中一个,所以现在要扩展安装一下。
就拿mbstring为例吧
环境php5.2.14, 不支持mbstring扩展
上传php源码,tar 之。
shell>cd /usr/local/src/php-5.2.14/ext
shell>ls #下面都模块源码,想安装那个就进那个目录
shell>cd mbstring
shell>phpize
shell>./configure --with-php-config=/usr/local/php/bin/php-config #指定php-config文件
shell>make
shell>make install #看这一步的输出可以看出是模块的目录,我的是/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613
shell>vim /usr/local/php/lib/php.ini #编辑php.ini添加扩展目录。
extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613
extension=mbstring.so
重启一个web服务,用phpinfo看看是否支持mbstring。
自动建立ssh信任脚本
转自:www.chinaunix.net。作者:老表
在工作中经常遇到给两台主机建立ssh信任,手动建立太费事了,索性胡乱写了个脚本ssh_trust.sh来自动建立信任:
- #!/bin/bash
- src_host=$1
- src_username=$2
- src_passwd=$3
- dst_host=$4
- dst_username=$5
- dst_passwd=$6
- #在远程主机1上生成公私钥对
- Keygen()
- {
- expect << EOF
- spawn ssh $src_username@$src_host ssh-keygen -t rsa
- while 1 {
- expect {
- "password:" {
- send "$src_passwdn"
- }
- "yes/no*" {
- send "yesn"
- }
- "Enter file in which to save the key*" {
- send "n"
- }
- "Enter passphrase*" {
- send "n"
- }
- "Enter same passphrase again:" {
- send "n"
- }
- "Overwrite (y/n)" {
- send "nn"
- }
- eof {
- exit
- }
- }
- }
- EOF
- }
- #从远程主机1获取公钥保存到本地
- Get_pub()
- {
- expect << EOF
- spawn scp $src_username@$src_host:~/.ssh/id_rsa.pub /tmp
- expect {
- "password:" {
- send "$src_passwdn";exp_continue
- }
- "yes/no*" {
- send "yesn";exp_continue
- }
- eof {
- exit
- }
- }
- EOF
- }
- #将公钥的内容附加到远程主机2的authorized_keys
- Put_pub()
- {
- src_pub="$(cat /tmp/id_rsa.pub)"
- expect << EOF
- spawn ssh $dst_username@$dst_host "chmod 700 ~/.ssh;echo $src_pub >> ~/.ssh/authorized_keys;chmod 600 ~/.ssh/authorized_ke
- ys"
- expect {
- "password:" {
- send "$dst_passwdn";exp_continue
- }
- "yes/no*" {
- send "yesn";exp_continue
- }
- eof {
- exit
- }
- }
- EOF
- }
- Keygen
- Get_pub
- Put_pub
- ./ssh_trust.sh host1 user1 passwd1 host2 user2 passwd2
说明:
1、当然得安装expect
2、脚本放在第三方机器(能远程登录host1和host2)上运行即可,当然放在host1和host2上运行也行。
3、如果想批量建立信任,可以编辑一个文件夹file如:
- host1 user1 passwd1 host2 user2 passwd2
- host3 user3 passwd3 host4 user4 passwd4
- host5 user5 passwd5 host6 user6 passwd6
- xargs -n6 ./ssh_trust.sh < file
5、只在linuxredhat上测试过,运行成功,欢迎大家提意见~~
centos 5.5添加新的字符集
1.下载相应的字符集。
2.在服务器上,进入/usr/share/fonts/目录下
新建一个目录,随便了。myfont
3。复制字符集到myfont目录。
进入myfont
运行下边的命令更新字符集。
mkfontscale
mkfontdir
fc-cache
cat fonts.dir 看看支持的字符。
4.如果要修改系统的话,就LANG=‘字符集’
paste 命令
linux下命令使用详解---合并文件的列
功能说明:合并文件的列。
语 法:paste [-s][-d ][--help][--version][文件...]
补充说明:paste指令会把每个文件以列对列的方式,一列列地加以合并。
参 数:
-d或--delimiters= 用指定的间隔字符取代跳格字符。
-s或--serial 串列进行而非平行处理。
--help 在线帮助。
--version 显示帮助信息。
例:
1.paste的拼凑原理是什么?
这个很简单,和cut的原理几乎一样,就是将几个文件的相应行用制表符连接起来,并输出到标准输出。
paste最简单的使用方法是:
[rocrocket@rocrocket programming]$ cat p1.txt
123[rocrocket@rocrocket programming]$ cat p2.txt
a
b
c
[rocrocket@rocrocket programming]$ paste p1.txt p2.txt
1 a
2 b
3 c
[rocrocket@rocrocket programming]$ paste p1.txt p2.txt|sed-n l
1ta$
2tb$
3tc$
看到制表符了吧,它就是默认的间隔符。
2 上面的例子是两个文件的,那三个文件呢?
当然也可以了。看看例子吧:
[rocrocket@rocrocket programming]$ cat p3.txt
I
II
III
[rocrocket@rocrocket programming]$ paste p1.txt p2.txt p3.txt
1 a I
2 b II
3 c III
[rocrocket@rocrocket programming]$ paste p3.txt p2.txt p1.txt
I a 1
II b 2
III c 3
可见paste的结果是和文件列表的顺序有关的。
3 我不想用制表符来间隔,我想用星号(*),可以么?
行的!使用-d符号就可以设定间隔符,这和cut没有两样。看看例子:
[rocrocket@rocrocket programming]$ paste -d'*' p3.txt p2.txt p1.txt
I*a*1
II*b*2
III*c*3
要注意一点,此处一定要把星号用引号括起来哦(单引号双引号均可),否则shell会把星号扩展为当前目录下的文件列表哦,小心小心。
4 我看过paste命令的man,里面提到了一个-s选项,我不懂是什么意思?
这个很好解释,继续上面的例子,看看这个命令:
[rocrocket@rocrocket programming]$ paste -s-d"*" p3.txt p2.txt p1.txt
I*II*III
a*b*c
1*2*3
呵呵,懂了吧,-s就是以每个文件为一个处理单元,将其中的所有行以-d设定的间隔符相连接组成一大行,输出到标准输出中。
linux scsi硬盘热插拔
在生产环境中,有很多情况不能随便重启设备,例如scsi硬盘的更换(非raid卡环境)。
在linux下面修改/proc/scsi/scsi文件可以实现热插拔。
测试环境red hat 5.5+vmware8.0
具体步骤:
1.硬盘添加到服务上,看好接口,插槽。
2.管理员登陆,看一个/proc/scsi/scsi文件
3.用户运行下面命令
例:echo "scsi add-single-device x y z u" > /proc/scsi/scsi
其中:
x是硬盘所在SCSI控制器号(一般机器就一个SCSI控制器,所以就是0);
y是硬盘所在SCSI通道的编号(一般单通道的就是0,多通道的要看是哪个通道了);
z是硬盘的SCSI ID号(可以通过具体插入的硬盘插槽来判断,从0开始);
u是硬盘的lun号(默认情况都是0)
4.查看文件/proc/scsi/scsi,多出来一个硬盘。fdisk -l 也可以发现多一个硬盘。
5.拔下硬盘,别忘了挂载点,运行下面命令。
echo "scsi remove-single-device x y z u" > /proc/scsi/scsi
硬盘被安全移除。