一、 前言
1、由于每月月底都需要对一些oracle数据库环境进行一些简单的巡检,而通过运行一条条语句,并依依去截图保存到word文档中效率低下,所以这里我就将手工巡检过程编写成shell脚本来提高巡检效率,同时也免去了截图照片图片不清晰的问题。 2、脚本简单容易二次编辑,本文仅提供简单巡检的事项,如数据表空间是否自动扩展、是否开启归档等,大家根据实际需要编辑修改,增加符合自己公司需求的巡检报告。 3、项目已经上传到我的github上 项目地址:orawatch.git
二、注意事项与报告部分截图
一定注意阅读git上的README.md说明,避免 system 用户被锁定。
三、README.md
1、需要使用oracle用户执行 2、使用说明 1)、多实例下运行此脚本: 声明实例名;执行时跟上此实例对应的 system 密码
$ export ORACLE_SID=orcl
$ chmod + x orawatch. sh
$ . / orawatch. sh system/ yourpassword
或者是将此实例对应的 system 密码填写到脚本中,随后执行
$ vi orawatch. sh
sqlstr="system/system"
$ chmod + x orawatch. sh
$ . / orawatch. sh
2)、请注意一定要将对应实例名的对应system密码填写至脚本如下位置,或是执行时跟上对应实例的system密码,否则将造成 system 用户因密码错误而被锁定
system用户解锁语句:
SQL> alter user system account unlock;
alter user system identified by yourpassword;
3、执行完巡检之后,将在脚本所在的路径下生成html巡检结果报告,如下 192.168.35.244os_oracle_summary.html 4、巡检项信息如下(其他统计项可根据实际需要自行添加) 0)、巡检ip信息 1)、数据库版本 2)、是否开启归档,及归档磁盘占用率与路径信息 3)、数据库memory/sga/pga信息 4)、数据表空间是否自动扩展 5)、数据库当前分配的数据表空间使用率信息
四、脚本内容
ipaddress=`ip a| grep "global" | awk '{print $2}' | awk - F/ '{print $1}' `
file_output=${ ipaddress} 'os_oracle_summary.html'
td_str=''
th_str=''
sqlstr=$1
test $1
if [ $? = 1 ] ; then
echo
echo "Info...You did not enter a value for sqlstr."
echo "Info...Using default value = system/system"
sqlstr="system/system"
fi
export NLS_LANG='american_america.AL32UTF8'
create_html_css( ) {
echo - e "
"
}
create_html_head( ) {
echo - e "$1 "
}
create_table_head1( ) {
echo - e "%" border=" 1" bordercolor="
}
create_table_head2( ) {
echo - e "%" border=" 1" bordercolor="
}
create_td( ) {
td_str=`echo $1 | awk 'BEGIN{FS="|"}''{i=1; while(i<=NF) {print " "$i" ";i++}}'`
}
create_th( ) {
th_str=`echo $1 | awk 'BEGIN{FS="|"}''{i=1; while(i<=NF) {print " "$i" ";i++}}'`
}
create_tr1( ) {
create_td "$1 "
echo - e "
$td_str
" >> $file_output
}
create_tr2( ) {
create_th "$1 "
echo - e "
$th_str
" >> $file_output
}
create_tr3( ) {
echo - e "
font- family:Courier New; word- wrap: break - word; white- space: pre- wrap; white- space: - moz- pre- wrap\" >
`cat $1 `
" >> $file_output
}
create_table_end( ) {
echo - e "
"
}
create_html_end( ) {
echo - e ""
}
NAME_VAL_LEN=12
name_val ( ) {
printf "%+*s | %s\n" "${NAME_VAL_LEN}" "$1 " "$2 "
}
get_netinfo( ) {
echo "interface | status | ipadds | mtu | Speed | Duplex" >>/ tmp/ tmpnet_h1_`date + % y% m% d`. txt
for ipstr in `ifconfig - a| grep ": flags" | awk '{print $1}' | sed 's/.$//' `
do
ipadds=`ifconfig ${ ipstr} | grep - w inet| awk '{print $2}' `
mtu=`ifconfig ${ ipstr} | grep mtu| awk '{print $NF}' `
speed=`ethtool ${ ipstr} | grep Speed| awk - F: '{print $2}' `
duplex=`ethtool ${ ipstr} | grep Duplex| awk - F: '{print $2}' `
echo "${ipstr}" "up" "${ipadds}" "${mtu}" "${speed}" "${duplex}" \
| awk '{print $1,"|", $2,"|", $3,"|", $4,"|", $5,"|", $6}' >>/ tmp/ tmpnet1_`date + % y% m% d`. txt
done
}
ora_base_info( ) {
echo "######################## 1.数据库版本"
echo "select ' ' as \" -- 1. Database Version\" from dual;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_base_`date + % y% m% d`. txt
echo "Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_base_`date + % y% m% d`. txt
}
ora_archive_info( ) {
echo "######################## 2.归档状态"
echo "select ' ' as \" -- 2. DB Archive Mode\" from dual;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_archive_`date + % y% m% d`. txt
echo "select archiver from v\$instance ;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_archive_`date + % y% m% d`. txt
sed - i '33!d' / tmp/ tmpora_archive_`date + % y% m% d`. txt
archive_string=`cat / tmp/ tmpora_archive_\`date + % y% m% d\`. txt`
if [ $archive_string = STARTED ] ; then
echo "set linesize 333;
col FILE_TYPE for a13;
select FILE_TYPE,PERCENT_SPACE_USED as \" 占用率( % ) \",PERCENT_SPACE_RECLAIMABLE,NUMBER_OF_FILES,CON_ID from v\$flash_recovery_area_usage where FILE_TYPE = 'ARCHIVED LOG';
show parameter log_archive;
col NAME for a40;
col 已使用空间 for a13;
select NAME,SPACE_LIMIT/1024/1024 as \" 最大空间( M) \",SPACE_USED/1024/1024 as \" 已使用空间( M) \",SPACE_RECLAIMABLE,NUMBER_OF_FILES,CON_ID from v\$recovery_file_dest ;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_archive_`date + % y% m% d`. txt
for i in `seq 2`; do sed - i '$d' / tmp/ tmpora_archive_`date + % y% m% d`. txt ; done
fi
}
ora_mem_info( ) {
echo "######################## 3.1 内存参数memory"
echo "select ' ' as \" -- 3. 1. DB memory\" from dual;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_mem_`date + % y% m% d`. txt
echo "set line 2500;
show parameter memory;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_mem_`date + % y% m% d`. txt
}
ora_sga_info( ) {
echo "######################## 3.2 内存参数sga"
echo "select ' ' as \" -- 3. 2. DB sga\" from dual;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_sga_`date + % y% m% d`. txt
echo "set line 2500;
show parameter sga;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_sga_`date + % y% m% d`. txt
}
ora_pga_info( ) {
echo "######################## 3.3 内存参数pga"
echo "select ' ' as \" -- 3. 3. DB pga\" from dual;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_pga_`date + % y% m% d`. txt
echo "set line 2500;
show parameter pga;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_pga_`date + % y% m% d`. txt
}
ora_dbfile_info( ) {
echo "######################## 4.表空间是否自动扩展"
echo "select ' ' as \" -- 4. DB dbfile\" from dual;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_dbfile_`date + % y% m% d`. txt
echo "set lines 2500;
col TABLESPACE_NAME for a15;
col FILE_NAME for a60;
select FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE, maxbytes/1024/1024 as max_m,increment_by/1024/1024 as incre_m from dba_data_files;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_dbfile_`date + % y% m% d`. txt
}
ora_dbfile_useage_info( ) {
echo "######################## 5.表空间使用率"
echo "select ' ' as \" -- 5. DB dbfile useage\" from dual;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_dbfile_useage_`date + % y% m% d`. txt
echo "set line 2500;
col 表空间名 for a14;
SELECT UPPER(F.TABLESPACE_NAME) \" 表空间名\",D.TOT_GROOTTE_MB \" 表空间大小( G) \",D.TOT_GROOTTE_MB - F.TOTAL_BYTES \" 已使用空间( G) \",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' \" 使用比\",F.TOTAL_BYTES \" 空闲空间( G) \",F.MAX_BYTES \" 最大块( G) \" FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024*1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024*1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE where tablespace_name<> 'USERS' GROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024*1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD where dd.tablespace_name<> 'USERS' GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1;" >ora_sql. sql
sqlplus $sqlstr .sql>>/ tmp/ tmpora_dbfile_useage_`date + % y% m% d`. txt
}
create_html( ) {
rm - rf $file_output
touch $file_output
create_html_css >> $file_output
create_html_head "0 Network Info Summary" >> $file_output
create_table_head1 >> $file_output
get_netinfo
while read line
do
create_tr2 "$line "
done < / tmp/ tmpnet_h1_`date + % y% m% d`. txt
while read line
do
create_tr1 "$line "
done < / tmp/ tmpnet1_`date + % y% m% d`. txt
create_table_end >> $file_output
create_html_head "1 Version of Database" >> $file_output
create_table_head1 >> $file_output
ora_base_info
sed - i '27,33!d' / tmp/ tmpora_base_`date + % y% m% d`. txt
sed - i '2,3d' / tmp/ tmpora_base_`date + % y% m% d`. txt
create_tr3 "/tmp/tmpora_base_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "2 Status of archive_log" >> $file_output
create_table_head1 >> $file_output
ora_archive_info
sed - i '2,11d' / tmp/ tmpora_archive_`date + % y% m% d`. txt
create_tr3 "/tmp/tmpora_archive_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "3.1 memory Config of Database" >> $file_output
create_table_head1 >> $file_output
ora_mem_info
sed - i '1,30d' / tmp/ tmpora_mem_`date + % y% m% d`. txt
for i in `seq 2`; do sed - i '$d' / tmp/ tmpora_mem_`date + % y% m% d`. txt ; done
create_tr3 "/tmp/tmpora_mem_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "3.2 sga Config of Database" >> $file_output
create_table_head1 >> $file_output
ora_sga_info
sed - i '1,30d' / tmp/ tmpora_sga_`date + % y% m% d`. txt
for i in `seq 2`; do sed - i '$d' / tmp/ tmpora_sga_`date + % y% m% d`. txt ; done
create_tr3 "/tmp/tmpora_sga_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "3.3 pga Config of Database" >> $file_output
create_table_head1 >> $file_output
ora_pga_info
sed - i '1,30d' / tmp/ tmpora_pga_`date + % y% m% d`. txt
for i in `seq 2`; do sed - i '$d' / tmp/ tmpora_pga_`date + % y% m% d`. txt ; done
create_tr3 "/tmp/tmpora_pga_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "4 dbfile autoextensible of Database" >> $file_output
create_table_head1 >> $file_output
ora_dbfile_info
sed - i '1,30d' / tmp/ tmpora_dbfile_`date + % y% m% d`. txt
for i in `seq 2`; do sed - i '$d' / tmp/ tmpora_dbfile_`date + % y% m% d`. txt ; done
create_tr3 "/tmp/tmpora_dbfile_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "5 dbfile usage of Database" >> $file_output
create_table_head1 >> $file_output
ora_dbfile_useage_info
sed - i '1,30d' / tmp/ tmpora_dbfile_useage_`date + % y% m% d`. txt
for i in `seq 2`; do sed - i '$d' / tmp/ tmpora_dbfile_useage_`date + % y% m% d`. txt ; done
create_tr3 "/tmp/tmpora_dbfile_useage_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_end >> $file_output
sed - i 's/BORDER=1/width="68%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse"/g' $file_output
rm - rf / tmp/ tmp* _`date + % y% m% d`. txt
rm - rf ora_sql. sql
}
PLATFORM=`uname`
if [ ${ PLATFORM} = "HP-UX" ] ; then
echo "This script does not support HP-UX platform for the time being"
exit 1
elif [ ${ PLATFORM} = "SunOS" ] ; then
echo "This script does not support SunOS platform for the time being"
exit 1
elif [ ${ PLATFORM} = "AIX" ] ; then
echo "This script does not support AIX platform for the time being"
exit 1
elif [ ${ PLATFORM} = "Linux" ] ; then
create_html
fi
你可能感兴趣的:(oracleDB,shell脚本,oracle,linux)
Docker-部署ES和Kibana
相逢太短,莫等茶凉
docker elasticsearch mac
资料kibana和elasticserch兼容性表https://www.elastic.co/cn/support/matrix#matrix_compatibilityMac系统安装需要版本支持linux/arm64,需要两个都要支持有arm64,有些es支持,kibana不支持。ps:dockerpullelasticsearch出现elasticsearch:latestnotfound,
Linux——Linux系统编程之基于TFTP实现服务器与开发板间的文件传输实战总结
Winter_world
Linux系统 TFTP服务器搭建 TFTP文件传输
目录0引言1TFTP服务器搭建1.1TFTP基础1.2Ubuntu搭建TFTP服务器1.3测试TFTP服务器2开发板实现TFTP文件传输2.1同一网段2.2配置2.3客户端与服务器的通信0引言我们前面总结的Linux字符设备、串口编程博文中,在虚拟机中编译得到可执行文件后,都是通过U盘连接开发板进行测试验证的,或者就是把可执行文件编译到最小系统中,再OTG烧写进开发板,这两种方法都比较麻烦,这里我
Java:从入门到创新
java
Java:从入门到创新一、Java简介Java是一种广泛使用的高级编程语言,自1995年首次发布以来,一直深受开发者的喜爱。它由SunMicrosystems公司开发,后来被Oracle公司收购。Java的设计目标是简单、健壮、安全且跨平台,这些特性使其在企业级应用开发中占据重要地位。二、Java的主要特点(一)简单易学Java的语法与C语言和C++语言很接近,但丢弃了C++中一些复杂且容易出错的
宝塔安装mayfly-go
mayans005
数据库
mayfly-go:web版linux(终端文件脚本进程)、数据库(mysqlpgsql)、redis(单机哨兵集群)、mongo统一管理操作平台。1、终端执行命令下载程序包wgethttps://gitee.com/objs/mayfly-go/releases/download/v1.3.0/mayfly-go-linux-amd64.zip2、在宝塔新建一个MySQL数据库,将下载程序包中的
开源项目推荐:Mayfly-go
周风队
开源项目推荐:Mayfly-gomayfly-goweb版linux(终端文件脚本进程)、数据库(mysqlpgsql高斯达梦)、redis(单机哨兵集群)、mongo统一管理操作平台。项目地址:https://gitcode.com/gh_mirrors/ma/mayfly-goMayfly-go是一个基于浏览器的统一管理操作平台,它支持多种数据库和系统管理功能。该项目主要使用Go语言和前端框架
推荐项目:Mayfly-Go - 高性能的时间序列数据库
齐游菊Rosemary
推荐项目:Mayfly-Go-高性能的时间序列数据库mayfly-goweb版linux(终端文件脚本进程)、数据库(mysqlpgsql高斯达梦)、redis(单机哨兵集群)、mongo统一管理操作平台。项目地址:https://gitcode.com/gh_mirrors/ma/mayfly-go项目简介是一款由Dromara团队开发的高性能、轻量级时间序列数据库(TimeSeriesData
Mayfly-Go 开源项目教程
方蕾嫒Falcon
Mayfly-Go开源项目教程mayfly-goweb版linux(终端文件脚本进程)、数据库(mysqlpgsql高斯达梦)、redis(单机哨兵集群)、mongo统一管理操作平台。项目地址:https://gitcode.com/gh_mirrors/ma/mayfly-go项目介绍Mayfly-Go是一个基于Go语言开发的开源项目,旨在提供一个轻量级、高性能的微服务框架。该项目由Dromar
linux+docker安装常见中间件+shell学习笔记
芦屋花绘
linux docker 中间件
初始设置下载虚拟机软件:选择适合的虚拟机软件(如VirtualBox或VMware)。下载操作系统ISO映像文件:选择并下载你想安装的Linux发行版(例如Ubuntu、CentOS等)的ISO文件。ISO映像文件:是包含了完整光盘内容的文件,包含引导记录、文件系统、数据文件和目录结构。导入ISO文件到虚拟机,并进行相关配置,如分配内存、硬盘空间等。了解基本linuxLinux常见目录及其用途Li
文件系统(File System — FS)
夏L.
linux 运维 服务器
概念文件系统是Linux内部用来管理磁盘上文件的一套系统,主要体现在文件的存取、查找功能(本身是一套软件,对磁盘上存放的文件进行管理)。内核(Kernel)内核是操作系统内部最核心的软件。查看内核版本uname-r内核作用对CPU进行调度管理对内存进行分配管理对进程进行管理对文件系统进行管理对其他硬件进行管理内核中XFS文件系统存放地址/usr/lib/modules/3.10.0-1160.el
[ Linux 命令基础 ] Linux 命令大全-命令前置知识-系统管理-文件和目录管理-文本处理命令-网络管理命令-权限和用户管理命令-磁盘管理命令
_PowerShell
shell脚本入门到精通 Linux 命令大全 linux命令前置知识 linux系统管理 linux文件和目录管理 linux文本处理命令 linux网络管理命令 linux权限和用户管理命令
博主介绍博主介绍:大家好,我是_PowerShell,很高兴认识大家~✨主攻领域:【渗透领域】【数据通信】【通讯安全】【web安全】【面试分析】点赞➕评论➕收藏==养成习惯(一键三连)欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋作者水平有限,欢迎各位大佬指点,相互学习进步!我们搞网络安全需要经常用到linux命令,比用拿到linux的shell,需要使用linux命令。再比如sh脚本,我们经常
【Hive】-- hive 3.1.3 伪分布式部署(单节点)
oo寻梦in记
Apache Paimon 大数据服务部署 hive 分布式 hadoop
1、环境准备1.1、版本选择apachehive3.1.3apachehadoop3.1.0oraclejdk1.8mysql8.0.15操作系统:Macos10.151.2、软件下载https://archive.apache.org/dist/hive/https://archive.apache.org/dist/hadoop/1.3、解压tar-zxvfapache-hive-4.0.0-
根据文件名称查询文件所在位置
姚不倒
linux 运维 数据库
在Linux中,根据文件名称查询文件所在位置主要通过命令行工具实现,以下是几种常用方法:---###**1.使用`find`命令(最灵活)**`find`命令可以递归搜索指定目录下的文件,支持按名称、类型、时间等条件过滤。####**基础语法**```bashfind[搜索路径]-name"文件名"```####**示例**-全局搜索名为`example.txt`的文件:```bashfind/-
Linux中view命令
姚不倒
linux 运维 服务器
在Linux系统中,view命令是一个用于查看文本文件内容的命令。它是vi或vim编辑器的一个衍生版本,但主要用于只读操作,即用户可以在不修改文件内容的情况下查看文件。以下是关于view命令的详细解释:一、命令功能查看文件内容:view命令允许用户以只读模式打开并查看文本文件的内容,非常适合于需要快速浏览文件而不需要进行编辑的场景。支持多种格式:虽然主要用于查看文本文件,但view命令在某些情况下
linux下基本命令和扩展命令(安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令、其他命令)欢迎补充噢
h^hh
Linux linux
基本命令ls:列出目录内容ls:列出当前目录内容ls-l:以长格式列出(显示详细信息)ls-a:显示隐藏文件ls-lh:以易读格式显示文件大小pwd:显示当前工作目录pwd:显示当前目录的绝对路径cd:切换目录cd/path/to/dir:切换到指定目录cd..:返回上一级目录cd~:切换到用户主目录cd-:切换到上一次所在的目录touch:创建空文件或更新文件时间戳touchfile.txt:创
【Linux】Hadoop-3.4.1的伪分布式集群的初步配置
孤独打铁匠Julian
Linux linux hadoop ubuntu
配置步骤一、检查环境JDK#目前还是JDK8最适合Hadoopjava-versionecho$JAVA_HOMEHadoophadoopversionecho$HADOOP_HOME二、配置SSH免密登录Hadoop需要通过SSH管理节点(即使在伪分布式模式下)sudoaptinstallopenssh-server#安装SSH服务(如未安装)cd~/.ssh/ssh-keygen-trsa#生
Linux动静态库
遥逖
Linux linux 运维 服务器
Linux动静态库静态库动态库库的链接静态库核心特性:链接时机:在编译时将库代码直接嵌入到可执行文件中。文件格式:.a(Linux)、.lib(Windows)。内存占用:每个使用该库的可执行文件都会包含一份完整的库代码副本。创建静态库(.a文件)编写源代码:首先,编写你需要的库函数的源代码文件,例如mylib.c编译为目标文件:使用gcc/g++编译源码为目标文件(.o文件)g++-cmylib
jupyter的一些操作
翻滚吧键盘
Debian12使用日记 jupyter ide python
Linux,mac中可以直接通过在输入代码的地方输入pip等终端命令,并可以执行运行所有cell“Cell"菜单,然后选择“RunAll”选项来运行全部代码
【C++开源库】tinyxml2解析库使用介绍
小庞在加油
C++知识 c++ 开源 tinyxml2解析库
TinyXML-2是一个在C++中使用的轻量级、简单且高效的XML解析库。它由LeeThomason开发,旨在提供快速解析和生成XML数据的功能,同时保持代码的简洁性和易于使用。TinyXML-2支持多种编译器和平台,包括Windows、Linux和macOS。特点与优势简单易用:TinyXML-2提供了直观的API,使得解析和生成XML文档变得简单。高性能:它经过优化,能够快速解析大型XML文件
使用ssh-keygen命令生成密钥对无密码远程登陆linux主机
哎哟喂我去
rhel6
我们在工作或试验中经常会需要登录多台linux主机进行操作,开启过多的ssh登陆界面,在不同的主机间切换时是非常让人的抓狂一件事情,只登陆一台linux主机然后通过此主机ssh登陆到其他主机这样是比较好的一种方式,但是在ssh登陆到其他主机时频繁的输入密码会让我们一直做重复的输入密码的工作,那有没有可以自动记住密码,或者不需要输入密码的工具呢?linux自带的ssh-kengen命令可以让我们轻松
PyQt6/PySide6 的 QSettings 类(配置管理)
燃灯工作室
Pyside python 开发语言
一、QSettings核心机制存储原理:基于键值对的持久化存储Windows:注册表路径HKEY_CURRENT_USER\Software\[组织名]\[应用名]macOS:~/Library/Preferences/[组织名].[应用名].plistLinux:~/.config/[组织名]/[应用名].conf基础代码框架:fromPySide6.QtCoreimportQSettings#
Linux find 命令完全指南
可问 可问春风
Linux从新手到入门 linux chrome 运维
find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作。以下通过场景分类解析核心用法,涵盖高效搜索、文件管理及高级技巧:一、基础搜索模式1.按文件名搜索(精确/模糊匹配)find/path-name"*.log"#精确匹配.log后缀(区分大小写)find/home-iname"*.TXT"#模糊匹配.txt后缀(忽略大小写)find.-name"data_[0-9].cs
Linux内核网络设备注册与地址族协同机制深度解析
109702008
# C语言 编程 网络 网络 人工智能 c语言
在Linux网络子系统中,网络设备注册与地址族(AddressFamily)的协同工作机制是构建高性能网络应用的核心基础。本文将以IPoIB(InfiniBandoverIP)驱动为例,深入解析register_netdev函数在设备注册中的作用,地址族的选择对网络通信的影响,以及如何通过自定义协议实现灵活的网络控制。一、网络设备注册机制解析1.1register_netdev的核心作用regis
Oracle证书靠谱吗?值得考吗?
噗老师
Oracle认证 oracle 数据库
Oracle认证在数据库管理领域享有极高的声誉和价值,是许多专业人士职业生涯中的重要里程碑。那么,Oracle认证是否值得投入时间和精力去考取呢?这个问题的答案很大程度上取决于你的职业规划、个人兴趣和对未来的展望。首先,Oracle认证的价值还体现在其广泛的行业需求上。在金融、医疗、政府等多个行业中,对数据库管理和分析的依赖性日益增加,这导致了对Oracle专业人才的巨大需求。Oracle数据库在
Oracle OCP认证是否值得考?
博睿谷IT99_
数据库 oracle 开闭原则 数据库
OracleOCP(OracleCertifiedProfessional)认证是数据库领域的传统权威认证,但随着云数据库和开源技术的崛起,其价值正面临分化。是否值得考取,需结合你的职业定位、行业需求及长期规划综合判断。以下是关键分析:一、什么情况下值得考?1.职业定位明确:扎根传统数据库领域适用人群:从事金融、电信、能源等传统行业的DBA(数据库管理员);需维护Oracle旧版本(如11g/12
linux系统安全加固
xiejin007
linux运维 linux 运维
linux系统安全加固linux系统安全加固linux系统安全加固脚本系统加固脚本下载地址:https://download.csdn.net/download/hzgnet2021/63201374时间获取脚本开头先获取本机时间#Variablerq=`date+%Y%m%d`Linux禁用不使用的用户将passwd先复制一份备份,然后将以下不使用的用户都禁用,如后期有需要恢复可使用passwd
Linux进程间通信:消息队列与msgget函数使用详解
无形小手
本文还有配套的精品资源,点击获取简介:本文深入介绍了Linux消息队列的创建和操作方法,包括msgget()、msgsnd()和msgrcv()三个核心函数。介绍了通过消息队列实现进程间通信的基础实验步骤和关键要点,如键值计算、消息发送和接收,以及进程间通信时常见的权限控制、消息顺序、类型匹配和同步问题。通过学习这些内容,开发者能够更好地理解和掌握如何在项目中实现高效的进程间通信。1.Linux消
Linux系统安全防护加固
寰宇001
Ubuntu centos
账号和口令1.1删除系统不需要的默认账号操作步骤使用命令userdel删除不必要的账号。使用命令passwd-l锁定不必要的账号。使用命令passwd-u解锁必要的账号。#userdellp#groupdellp#passwd–llp如果下面这些系统默认帐号不需要的话,建议删除。lp,syncnews,uucp,games,bin、man修改一些系统帐号的shell变量,例如uucp,ftp和ne
Linux系统安全加固基础
linux言叙
Linux安全 系统加固 linux centos 运维
注:建议在修改相关配置文件时,首先对需要修改文件进行备份。1、ssh远程连接vi/etc/sshd/sshd_configPort65531#修改ssh端口,默认22ListenAddress192.168.1.X#允许ssh登录的IP地址PermitRootLoginno#禁止root通过ssh连接)
[email protected] .*#允许用户test从IP为192.168.1
在华为鲲鹏服务器银河麒麟V10操作系统中安装docker及docker-pose
qinfeng1991
服务器 docker eureka
背景最近客户寄来几台为鲲鹏服务器,需要在上面安装docker及docker-compose以便运行我们的程序,跟常规的X86架构下安装docker和docker-compose稍微有些区别,特此记录。操作步骤0.系统版本查看[root@localhostcrcs-compile]#cat/etc/kylin-releaseKylinLinuxAdvancedServerreleaseV10(Lan
Linux信号处理详解:从基本概念到高级应用
chian-ocean
Linux linux 信号处理 运维
个人主页:chian-ocean文章专栏-Linux前言:在Linux系统中,信号(Signal)是操作系统用来通知进程发生某些事件的一种机制。信号是一种软件中断机制,可以被进程用来响应特定的事件,如终止进程、暂停进程、重新加载配置等。信号机制是Unix及其衍生系统的核心功能之一什么是信号生活中的信号也可以理解为一种通过特定方式传递信息、指令或警告的方式。在日常生活中,信号无处不在,帮助我们理解周
[星球大战]阿纳金的背叛
comsci
本来杰迪圣殿的长老是不同意让阿纳金接受训练的.........
但是由于政治原因,长老会妥协了...这给邪恶的力量带来了机会
所以......现代的地球联邦接受了这个教训...绝对不让某些年轻人进入学院
看懂它,你就可以任性的玩耍了!
aijuans
JavaScript
javascript作为前端开发的标配技能,如果不掌握好它的三大特点:1.原型 2.作用域 3. 闭包 ,又怎么可以说你学好了这门语言呢?如果标配的技能都没有撑握好,怎么可以任性的玩耍呢?怎么验证自己学好了以上三个基本点呢,我找到一段不错的代码,稍加改动,如果能够读懂它,那么你就可以任性了。
function jClass(b
Java常用工具包 Jodd
Kai_Ge
java jodd
Jodd 是一个开源的 Java 工具集, 包含一些实用的工具类和小型框架。简单,却很强大! 写道 Jodd = Tools + IoC + MVC + DB + AOP + TX + JSON + HTML < 1.5 Mb
Jodd 被分成众多模块,按需选择,其中
工具类模块有:
jodd-core &nb
SpringMvc下载
120153216
springMVC
@RequestMapping(value = WebUrlConstant.DOWNLOAD)
public void download(HttpServletRequest request,HttpServletResponse response,String fileName) {
OutputStream os = null;
InputStream is = null;
Python 标准异常总结
2002wmj
python
Python标准异常总结
AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) FloatingPointError 浮点计算错误 GeneratorExit generator.close()方法被调用的时候 ImportError 导入模块失
SQL函数返回临时表结构的数据用于查询
357029540
SQL Server
这两天在做一个查询的SQL,这个SQL的一个条件是通过游标实现另外两张表查询出一个多条数据,这些数据都是INT类型,然后用IN条件进行查询,并且查询这两张表需要通过外部传入参数才能查询出所需数据,于是想到了用SQL函数返回值,并且也这样做了,由于是返回多条数据,所以把查询出来的INT类型值都拼接为了字符串,这时就遇到问题了,在查询SQL中因为条件是INT值,SQL函数的CAST和CONVERST都
java 时间格式化 | 比较大小| 时区 个人笔记
7454103
java eclipse tomcat c MyEclipse
个人总结! 不当之处多多包含!
引用 1.0 如何设置 tomcat 的时区:
位置:(catalina.bat---JAVA_OPTS 下面加上)
set JAVA_OPT
时间获取Clander的用法
adminjun
Clander 时间
/**
* 得到几天前的时间
* @param d
* @param day
* @return
*/
public static Date getDateBefore(Date d,int day){
Calend
JVM初探与设置
aijuans
java
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台
SQL中ON和WHERE的区别
avords
SQL中ON和WHERE的区别
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 www.2cto.com 在使用left jion时,on和where条件的区别如下: 1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
说说自信
houxinyou
工作 生活
自信的来源分为两种,一种是源于实力,一种源于头脑.实力是一个综合的评定,有自身的能力,能利用的资源等.比如我想去月亮上,要身体素质过硬,还要有飞船等等一系列的东西.这些都属于实力的一部分.而头脑不同,只要你头脑够简单就可以了!同样要上月亮上,你想,我一跳,1米,我多跳几下,跳个几年,应该就到了!什么?你说我会往下掉?你笨呀你!找个东西踩一下不就行了吗?
无论工作还
WEBLOGIC事务超时设置
bijian1013
weblogic jta 事务超时
系统中统计数据,由于调用统计过程,执行时间超过了weblogic设置的时间,提示如下错误:
统计数据出错!
原因:The transaction is no longer active - status: 'Rolling Back. [Reason=weblogic.transaction.internal
两年已过去,再看该如何快速融入新团队
bingyingao
java 互联网 融入 架构 新团队
偶得的空闲,翻到了两年前的帖子
该如何快速融入一个新团队,有所感触,就记下来,为下一个两年后的今天做参考。
时隔两年半之后的今天,再来看当初的这个博客,别有一番滋味。而我已经于今年三月份离开了当初所在的团队,加入另外的一个项目组,2011年的这篇博客之后的时光,我很好的融入了那个团队,而直到现在和同事们关系都特别好。大家在短短一年半的时间离一起经历了一
【Spark七十七】Spark分析Nginx和Apache的access.log
bit1129
apache
Spark分析Nginx和Apache的access.log,第一个问题是要对Nginx和Apache的access.log文件进行按行解析,按行解析就的方法是正则表达式:
Nginx的access.log解析正则表达式
val PATTERN = """([^ ]*) ([^ ]*) ([^ ]*) (\\[.*\\]) (\&q
Erlang patch
bookjovi
erlang
Totally five patchs committed to erlang otp, just small patchs.
IMO, erlang really is a interesting programming language, I really like its concurrency feature.
but the functional programming style
log4j日志路径中加入日期
bro_feng
java log4j
要用log4j使用记录日志,日志路径有每日的日期,文件大小5M新增文件。
实现方式
log4j:
<appender name="serviceLog"
class="org.apache.log4j.RollingFileAppender">
<param name="Encoding" v
读《研磨设计模式》-代码笔记-桥接模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 个人觉得关于桥接模式的例子,蜡笔和毛笔这个例子是最贴切的:http://www.cnblogs.com/zhenyulu/articles/67016.html
* 笔和颜色是可分离的,蜡笔把两者耦合在一起了:一支蜡笔只有一种
windows7下SVN和Eclipse插件安装
chenyu19891124
eclipse插件
今天花了一天时间弄SVN和Eclipse插件的安装,今天弄好了。svn插件和Eclipse整合有两种方式,一种是直接下载插件包,二种是通过Eclipse在线更新。由于之前Eclipse版本和svn插件版本有差别,始终是没装上。最后在网上找到了适合的版本。所用的环境系统:windows7JDK:1.7svn插件包版本:1.8.16Eclipse:3.7.2工具下载地址:Eclipse下在地址:htt
[转帖]工作流引擎设计思路
comsci
设计模式 工作 应用服务器 workflow 企业应用
作为国内的同行,我非常希望在流程设计方面和大家交流,刚发现篇好文(那么好的文章,现在才发现,可惜),关于流程设计的一些原理,个人觉得本文站得高,看得远,比俺的文章有深度,转载如下
=================================================================================
自开博以来不断有朋友来探讨工作流引擎该如何
Linux 查看内存,CPU及硬盘大小的方法
daizj
linux cpu 内存 硬盘 大小
一、查看CPU信息的命令
[root@R4 ~]# cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"
model name : Intel(R) Xeon(R) CPU X5450 @ 3.00GHz
model name :
linux 踢出在线用户
dongwei_6688
linux
两个步骤:
1.用w命令找到要踢出的用户,比如下面:
[root@localhost ~]# w
18:16:55 up 39 days, 8:27, 3 users, load average: 0.03, 0.03, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
放手吧,就像不曾拥有过一样
dcj3sjt126com
内容提要:
静悠悠编著的《放手吧就像不曾拥有过一样》集结“全球华语世界最舒缓心灵”的精华故事,触碰生命最深层次的感动,献给全世界亿万读者。《放手吧就像不曾拥有过一样》的作者衷心地祝愿每一位读者都给自己一个重新出发的理由,将那些令你痛苦的、扛起的、背负的,一并都放下吧!把憔悴的面容换做一种清淡的微笑,把沉重的步伐调节成春天五线谱上的音符,让自己踏着轻快的节奏,在人生的海面上悠然漂荡,享受宁静与
php二进制安全的含义
dcj3sjt126com
PHP
PHP里,有string的概念。
string里,每个字符的大小为byte(与PHP相比,Java的每个字符为Character,是UTF8字符,C语言的每个字符可以在编译时选择)。
byte里,有ASCII代码的字符,例如ABC,123,abc,也有一些特殊字符,例如回车,退格之类的。
特殊字符很多是不能显示的。或者说,他们的显示方式没有标准,例如编码65到哪儿都是字母A,编码97到哪儿都是字符
Linux下禁用T440s,X240的一体化触摸板(touchpad)
gashero
linux ThinkPad 触摸板
自打1月买了Thinkpad T440s就一直很火大,其中最让人恼火的莫过于触摸板。
Thinkpad的经典就包括用了小红点(TrackPoint)。但是小红点只能定位,还是需要鼠标的左右键的。但是自打T440s等开始启用了一体化触摸板,不再有实体的按键了。问题是要是好用也行。
实际使用中,触摸板一堆问题,比如定位有抖动,以及按键时会有飘逸。这就导致了单击经常就
graph_dfs
hcx2013
Graph
package edu.xidian.graph;
class MyStack {
private final int SIZE = 20;
private int[] st;
private int top;
public MyStack() {
st = new int[SIZE];
top = -1;
}
public void push(i
Spring4.1新特性——Spring核心部分及其他
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
配置HiveServer2的安全策略之自定义用户名密码验证
liyonghui160com
具体从网上看
http://doc.mapr.com/display/MapR/Using+HiveServer2#UsingHiveServer2-ConfiguringCustomAuthentication
LDAP Authentication using OpenLDAP
Setting
一位30多的程序员生涯经验总结
pda158
编程 工作 生活 咨询
1.客户在接触到产品之后,才会真正明白自己的需求。
这是我在我的第一份工作上面学来的。只有当我们给客户展示产品的时候,他们才会意识到哪些是必须的。给出一个功能性原型设计远远比一张长长的文字表格要好。 2.只要有充足的时间,所有安全防御系统都将失败。
安全防御现如今是全世界都在关注的大课题、大挑战。我们必须时时刻刻积极完善它,因为黑客只要有一次成功,就可以彻底打败你。 3.
分布式web服务架构的演变
自由的奴隶
linux Web 应用服务器 互联网
最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易
初探Druid连接池之二——慢SQL日志记录
xingsan_zhang
日志 连接池 druid 慢SQL
由于工作原因,这里先不说连接数据库部分的配置,后面会补上,直接进入慢SQL日志记录。
1.applicationContext.xml中增加如下配置:
<bean abstract="true" id="mysql_database" class="com.alibaba.druid.pool.DruidDataSourc