#!/bin/sh
ipaddress=`ip a|grep "global"|awk '{print $2}' |awk -F/ '{print $1}'`
file_output='os_linux_summary.html'
td_str=''
th_str=''
#yum -y install bc sysstat net-tools
create_html_css(){
echo -e "
"
}
create_html_head(){
echo -e "$1 "
}
create_table_head1(){
echo -e ""
}
create_table_head2(){
echo -e ""
}
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 "
`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_physics(){
name_val "巡检时间" "`date`"
name_val "主机名" "`uname -n`"
name_val "系统版本" "`cat /etc/{oracle,redhat,SuSE,centos}-release 2>/dev/null|sort -ru|head -n1`"
name_val "内核版本" "`uname -r`"
name_val "架构" "CPU=`lscpu|grep Architecture|awk -F: '{print $2}'|sed 's/^[[:space:]]*//g'`;OS=`getconf LONG_BIT`-bit"
}
get_cpuinfo () {
file="/proc/cpuinfo"
virtual=`grep -c ^processor "${file}"`
physical=`grep 'physical id' "${file}" | sort -u | wc -l`
cores=`grep 'cpu cores' "${file}" | head -n 1 | cut -d: -f2`
model=`grep "model name" "${file}"|sort -u|awk -F: '{print $2}'`
speed=`grep -i "cpu MHz" "${file}"|sort -u|awk -F: '{print $2}'`
cache=`grep -i "cache size" "${file}"|sort -u|awk -F: '{print $2}'`
SysCPUIdle=`vmstat | sed -n '$ p' | awk '{print $15}'`
[ "${physical}" = "0" ] && physical="${virtual}"
[ -z "${cores}" ] && cores=0
cores=$((${cores} * ${physical}));
htt=""
if [ ${cores} -gt 0 -a $cores -lt $virtual ]; then htt=yes; else htt=no; fi
name_val "线程" "physical = ${physical}, cores = ${cores}, virtual = ${virtual}, hyperthreading = ${htt}"
name_val "cpu型号" "${physical}*${model}"
name_val "速度" "${virtual}*${speed}"
name_val "缓存" "${virtual}*${cache}"
name_val "CPU空闲率(%)" "${SysCPUIdle}%"
}
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
}
get_cpuuse(){
echo "####################################### cpu使用率 #######################################" >>/tmp/tmp_cpuuse_`date +%y%m%d`.txt
mpstat -P ALL 10 6 >>/tmp/tmp_cpuuse_`date +%y%m%d`.txt
}
get_connections (){
filemax=`cat /proc/sys/fs/file-max`
name_val "Number of concurrent connections" "${filemax}"
}
get_ulimitinfo(){
echo "####################################### 系统限制最大进程数 #######################################" >>/tmp/tmp_ulimitinfo_`date +%y%m%d`.txt
ulimit -a >>/tmp/tmp_ulimitinfo_`date +%y%m%d`.txt
}
get_meminfo(){
echo "Locator |Size |Speed |Form Factor | Type | Type Detail" >>/tmp/tmpmem3_h1_`date +%y%m%d`.txt
dmidecode| grep -v "Memory Device Mapped Address"|grep -A12 -w "Memory Device" \
|egrep "Locator:|Size:|Speed:|Form Factor:|Type:|Type Detail:" \
|awk -F: '/Size|Type|Form.Factor|Type.Detail|^[\t ]+Locator/{printf("|%s", $2)}/^[\t ]+Speed/{print "|" $2}' \
|grep -v "No Module Installed" \
|awk -F"|" '{print $4,"|", $2,"|", $7,"|", $3,"|", $5,"|", $6}' >>/tmp/tmpmem3_t1_`date +%y%m%d`.txt
free -glht >>/tmp/tmpmem2_`date +%y%m%d`.txt
memtotal=`vmstat -s | head -1 | awk '{print $1}'`
avm=`vmstat -s| sed -n '3p' | awk '{print $1}'`
name_val "Mem_used_rate(%)" "`echo "100*${avm}/${memtotal}" | bc`%" >>/tmp/tmpmem1_`date +%y%m%d`.txt
}
get_diskinfo(){
echo "Filesystem |Type |Size | Used | Avail | Use% | Mounted on | Opts" >>/tmp/tmpdisk_h1_`date +%y%m%d`.txt
df -ThP|grep -v tmpfs|sed '1d'|sort >/tmp/tmpdf1_`date +%y%m%d`.txt
mount -l|awk '{print $1,$6}'|grep ^/|sort >/tmp/tmpdf2_`date +%y%m%d`.txt
join /tmp/tmpdf1_`date +%y%m%d`.txt /tmp/tmpdf2_`date +%y%m%d`.txt\
|awk '{print $1,"|", $2,"|", $3,"|", $4,"|", $5,"|", $6,"|", $7,"|", $8}' >>/tmp/tmpdisk_t1_`date +%y%m%d`.txt
lsblk >>/tmp/tmpdisk1_`date +%y%m%d`.txt
for disk in `ls -l /sys/block|awk '{print $9}'|sed '/^$/d'|grep -v fd`
do
echo "${disk}" `cat /sys/block/${disk}/queue/scheduler` >>/tmp/tmpdisk2_`date +%y%m%d`.txt
done
pvs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
echo "====================== ===== ===== ===== ===== ===== ========== =======" >>/tmp/tmpdisk3_`date +%y%m%d`.txt
vgs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
echo "====================== ===== ===== ===== ===== ===== ========== =======" >>/tmp/tmpdisk3_`date +%y%m%d`.txt
lvs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
}
get_topproc(){
#os load
echo "####################################### 网络流量情况 #######################################" >>/tmp/tmpload_`date +%y%m%d`.txt
sar -n DEV 10 6 >>/tmp/tmpload_`date +%y%m%d`.txt
echo "####################################### 系统资源变化 #######################################" >>/tmp/tmpload_`date +%y%m%d`.txt
vmstat -S M 10 6 >>/tmp/tmpload_`date +%y%m%d`.txt
#top cpu
mpstat 1 5 >>/tmp/tmptopcpu_`date +%y%m%d`.txt
echo "####################################### 消耗CPU前十排行 #######################################" >>/tmp/tmptopcpu_`date +%y%m%d`.txt
ps aux|head -1 >>/tmp/tmptopcpu_`date +%y%m%d`.txt
ps aux|grep -v PID|sort -rn -k +3|head >>/tmp/tmptopcpu_`date +%y%m%d`.txt
#top mem
echo "####################################### 消耗内存前十排行 #######################################" >>/tmp/tmptopmem_`date +%y%m%d`.txt
ps aux|head -1 >>/tmp/tmptopmem_`date +%y%m%d`.txt
ps aux|grep -v PID|sort -rn -k +4|head >>/tmp/tmptopmem_`date +%y%m%d`.txt
echo "TOP10 CPU Resource Process" >>/tmp/tmptopmem_`date +%y%m%d`.txt
top -bn1 -o "%CPU"|sed -n '1,17p'
#top i/o
echo "####################################### 磁盘io情况 #######################################" >>/tmp/tmptopio_`date +%y%m%d`.txt
iostat -k -d 10 5 >>/tmp/tmptopio_`date +%y%m%d`.txt
}
get_crontablist(){
crontab -l >>/tmp/tmp_crontab_`date +%y%m%d`.txt
if [ -s /tmp/tmp_crontab_`date +%y%m%d`.txt ] ; then
echo 'ths file is not empyt and file info'
else
echo '#### 无定时任务 ####' >>/tmp/tmp_crontab_`date +%y%m%d`.txt
fi
}
create_html(){
rm -rf $file_output
touch $file_output
create_html_css >> $file_output
create_html_head "系统基本信息" >> $file_output
create_table_head1 >> $file_output
get_physics >>/tmp/tmpos_summ_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done < /tmp/tmpos_summ_`date +%y%m%d`.txt
create_table_end >> $file_output
create_html_head "cpu信息" >> $file_output
create_table_head1 >> $file_output
get_cpuinfo >>/tmp/tmp_cpuinfo_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done < /tmp/tmp_cpuinfo_`date +%y%m%d`.txt
create_table_end >> $file_output
create_html_head "ip网络信息" >> $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 "cpu使用率" >> $file_output
create_table_head1 >> $file_output
get_cpuuse
create_tr3 "/tmp/tmp_cpuuse_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "连接数信息" >> $file_output
create_table_head1 >> $file_output
get_connections >>/tmp/tmp_connections_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done < /tmp/tmp_connections_`date +%y%m%d`.txt
create_table_end >> $file_output
create_html_head "系统限制信息" >> $file_output
create_table_head1 >> $file_output
get_ulimitinfo
create_tr3 "/tmp/tmp_ulimitinfo_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "内存使用信息" >> $file_output
create_table_head1 >> $file_output
get_meminfo
while read line
do
create_tr1 "$line"
done < /tmp/tmpmem1_`date +%y%m%d`.txt
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpmem2_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_table_head1 >> $file_output
while read line
do
create_tr2 "$line"
done < /tmp/tmpmem3_h1_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done < /tmp/tmpmem3_t1_`date +%y%m%d`.txt
create_table_end >> $file_output
create_html_head "磁盘使用信息" >> $file_output
create_table_head1 >> $file_output
get_diskinfo
while read line
do
create_tr2 "$line"
done < /tmp/tmpdisk_h1_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done < /tmp/tmpdisk_t1_`date +%y%m%d`.txt
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpdisk1_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpdisk2_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpdisk3_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "网络流量情况" >> $file_output
create_table_head1 >> $file_output
get_topproc
create_tr3 "/tmp/tmpload_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "消耗CPU前十排行" >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmptopcpu_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "消耗内存前十排行" >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmptopmem_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "磁盘io情况" >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmptopio_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "定时任务信息" >> $file_output
create_table_head1 >> $file_output
get_crontablist
create_tr3 "/tmp/tmp_crontab_`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
}
# This script must be executed as root
RUID=`id|awk -F\( '{print $1}'|awk -F\= '{print $2}'`
if [ ${RUID} != "0" ];then
echo"This script must be executed as root"
exit 1
fi
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
在linux启动脚本,会生成 os_linux_summary.html文件
你可能感兴趣的:(linux,html,运维)
CesiumJS+SuperMap3D.js混用实现通视分析
SteveJi666
WebGL cesium EarthSDK SuperMap 3d javascript 前端 arcgis
版本简介:cesium:1.99;Supermap3D:SuperMapiClientJavaScript11i(2023);官方下载文档链家:SuperMap技术资源中心|为您提供全面的在线技术服务示例参考:support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#analysissupport.supermap
HTML添加文字
若无心_.
HTML html5
一、创建HTML5文档基本标签//定义文档类型//定义HTML文档//定义关于文档的信息文档标题//定义文档的标题//定义文档的字符编码//定义文档的主体二、文字相关标签1.标题文字-标签可定义标题。定义最大的标题。定义最小的标题。Document这是标题1这是标题2这是标题3这是标题4这是标题5这是标题62.文本段落Document这次会晤的主题是“金砖国家在非洲:在第四次工业革命中共谋包容增长
snmp v2 trap搭建监控端
小黑要上天
snmp linux 服务器 centos 运维 snmp
1.基础环境配置为了防止防火墙及selinux等的影响,需关闭防火墙及selinux等,具体参考:Linux常规基础配置_linux基础配置-CSDN博客2.安装snmpyum源配置,具体参考:Linux常规基础配置_linux基础配置-CSDN博客snmp安装命令:yuminstall-ynet-snmpnet-snmp-utils[root@kibana~]#yuminstall-ynet-s
Linux 中的 route 命令介绍以及使用
XMYX-0
Centos命令使用 linux 服务器 运维 route
文章目录路由的基本概念route命令基础用法查看路由表添加路由删除路由添加默认路由删除默认路由route命令示例route命令的替代工具:`iproute`总结在Linux系统中,route命令用于查看和操作路由表。路由表决定了数据包如何在网络中转发和发送。本文将介绍route命令的基本概念、使用方法,并提供一些示例,以帮助更好地理解和使用该命令。路由的基本概念在网络通信中,路由表用于决定网络数据
navicate远程linux上的pgsql提示密码失败
coding上下求索
linux 服务器 数据库
错误提示:FATAL:passwordauthenticationfailedforuser“postgres”解决方案:1、pg_hba.conf文件中,ipv4下面的内容改成hostallall0.0.0.0/0md52、postgresql.conf文件中,修改listen_addresses由#listen_addresses='location'改为listen_addresses='*
html加载界面发送ajax请求
足球数据分析
html ajax 前端
html加载界面发送ajax请求makeAjaxRequest();functionmakeAjaxRequest(){varxhr=newXMLHttpRequest();//创建一个新的XMLHttpRequest对象xhr.open('GET','yourUrlPath',true);//配置请求,设置请求类型、URL和是否异步xhr.send();//发送请求}
看《绝望主妇》学英语
高雅_1f79
第四季第九集剧集连接https://www.imeiju.cc/Play/3543-1-8.html单词1.tendverbUS/tend/1)tendverb(BELIKELY)趋向;倾向于[I]tobelikelytohappenortohaveaparticularcharacteristicoreffect:Wetendtoeatathome.Childrentendtobelikethe
Jacoco的XML报告详解
CrissChan
自动化测试 持续交付和持续测试 jacoco 测试
使用jacococli完成jacoco测试报告生成后,会看到有一个.xml结尾的文件,这个就是xml格式的覆盖率报告。除了xml还有csv、html格式的报告,本文进介绍xml报告。DTD文件在介绍jacoco的xml报告之前,我们应该先看一下对应的DTD文件的内容。(DTD的全称为DocumentTypeDefinition,是一种文件定义格式,它规定了XML文件结构为XML文件提供了语法与规则
Prometheus运维六 PromQL查询语言详解及操作
安顾里
Prometheus 监控类 大数据 kubernetes 运维 linux
海阔凭鱼跃,天高任鸟飞Prometheus官网:https://prometheus.io/文章目录1.什么是PromQL?2.PromQL的基本使用2.1时间序列选择器2.1.1瞬时向量选择器2.2区间向量选择器2.2.1范围向量选择器2.2.2时间位移操作2.2.3使用聚合操作2.3标量和字符串3.PromQL操作符4.内置常用函数5.HTTPAPI操作PromQL6.使用建议1.什么是Pro
js的书写位置和css的书写位置的区别?为什么要这样写?
李是啥也不会
javascript css 开发语言
JavaScript和CSS的书写位置有以下区别:CSS通常写在标签中,或者在外部样式表文件中()。CSS主要用于控制页面的视觉样式和布局,通常在HTML文件的部分引入,以确保在页面渲染时样式已经加载完毕,从而避免样式闪烁。JavaScript通常写在标签中,或者在外部脚本文件中()。JavaScript用于添加页面的动态行为和交互。一般建议将JavaScript放在HTML文件的末尾(标签之前)
Ansible架构介绍与安装
2401_86637445
ansible 架构
一、介绍Ansible什么是Ansible?Ansible是一款自动化运维工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。实现了批量系统配置、批量程序部署、批量运行命令等功能。ansiblepuppetsaltstack主流的三种。ansible自动化运维工具被红帽收购阿里巴巴在用saltstackpython开发。无客户端,只需安装SSH、P
react里的index.js是怎么跟index.html结合起来的?
SherrinfordL
image.pngcreate-react-app把webpack、babel等配置都封装到了依赖项目react-script中,所以你无法直观的看到这些配置。你可以在项目下运行npmruneject,被隐藏的配置文件就会暴露到项目根路径下。把请求转发到index.html原因是,你执行npmrunstart时,启动的webpack-dev-server,会加载react-script项目conf
【拖拽】自定义拖拽图标
风露_
一、知识点设置被拖拽的元素draggable为true(HTML5新特性)关键方法:voiddataTransfer.setDragImage(img,xOffset,yOffset);注意点:Note:Ifthe[Element]isanexisting[HTMLElement],itneedstobevisibleintheviewportinordertobeshownasadragfeed
Linux dmesg命令:显示开机信息
fafadsj666
linux 数据库 数据挖掘 机器学习 大数据
通过学习《Linux启动管理》一章可以知道,在系统启动过程中,内核还会进行一次系统检测(第一次是BIOS进行加测),但是检测的过程不是没有显示在屏幕上,就是会快速的在屏幕上一闪而过那么,如果开机时来不及查看相关信息,我们是否可以在开机后查看呢?答案是肯定的,使用dmesg命令就可以。无论是系统启动过程中,还是系统运行过程中,只要是内核产生的信息,都会被存储在系统缓冲区中,已经为大家精心准备了大数据
【K8S】kubernetes集群架构与组件
奇奇怪怪^
云 Linux IT 运维 服务器 linux
文章目录【K8S】kubernetes集群架构与组件kubernetes组件**master组件**node组件整体流程POD终止过程【K8S】kubernetes集群架构与组件kubernetes组件K8S是属于主从设备模型(Master-slave架构),即有Master节点负责集群的调度、管理和运维,Slave节点是集群中的运算工作负载节点在K8S中,主节点一般被称为Master节点,而从节
POI 2018.10.21
weixin_33908217
[POI2008]TRO-Triangleshttps://www.cnblogs.com/GXZlegend/p/7509699.html平面上有N个点.求出所有以这N个点为顶点的三角形的面积和N<=3000计算几何。只需要用到S=|x1y2-x2y1|/2开始对所有点按照x排序。枚举第一个点P,求出其他点关于P的坐标。为了去掉绝对值,按照x1/y1排序。y1等于0要特判。然后发现是前缀和。本质
nginx部署前端项目的一些配置【刚入门】
weixin_30847271
运维 前端 ViewUI
前期准备:在linux上安装nginx,我用的是腾讯云centos7服务器,具体的安装过程可以到腾讯云的开发者实验室里体验,自己先试试水。修改nginx.conf配置文件,我用到的修改只是以下的部分。1.端口号2.项目的存放位置server{listen8088default_server;#访问的端口号。listen[::]:8088default_server;server_name_;#ro
讲解Linux内核操作系统——进程状态与转换
Linux加油站
网络 服务器 运维
一.进程控制进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。在操作系统中,一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断,它是一个不可分割的基本单位。1.1创建进程UNIX中进程为树状层次结构,Windows下所有进程没有层次结构允许一个进程创建另一个进程,创建者称为父进程,被创建的进程称为子进程。子进程可以继承父进程
Spring Boot实现多租户架构
spring_root
spring boot 架构 后端
一、概述1什么是多租户架构?多租户架构是指在一个应用中支持多个租户(Tenant)同时访问,每个租户拥有独立的资源和数据,并且彼此之间完全隔离。通俗来说,多租户就是把一个应用按照客户的需求“分割”成多个独立的实例,每个实例互不干扰。2多租户架构的优势更好地满足不同租户的个性化需求。可以降低运维成本,减少硬件、网络等基础设施的投入。节约开发成本,通过复用代码,快速上线新的租户实例。增强了系统的可扩展
树莓派交叉编译基础操作(带wiringPi库)
小小匠IT
树莓派 linux ubuntu
一:交叉编译是什么,为什么要交叉编译(1)交叉编译是什么?交叉编译:是在一个平台上生成另一个平台上的可执行代码。我们在windows上面编写C51代码,并编译成可执行代码,如xx.hex,是在c51上面运行,不是在windows上面运行我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out,是在树莓派上面运行,不是在ubuntulinux上面运行编译:是在一个平台上生成在该平台上
Python中的串口通信库pyserial(基础)
北海yy
Python相关 python 开发语言
文章目录概要基础知识1初始化串口2.写入数据3.读取数据4.关闭串口5.设置和获取串口参数6.清除缓冲区小结概要pyserial是一个Python库,它提供了与串口通信相关的功能。它可以让我们在Python程序中直接与串口设备进行通信,如读取和写入串口数据。pyserial是一个跨平台的库,可以在多个操作系统上使用,包括Windows、Linux和MacOS。pipinstallpyserial基
手把手教你企业微信SCRM源码下载和私有化部署教程
MoChat-1号
php 微信 微信公众平台 微信开放平台
服务器要求MoChat对系统环境有一些要求,仅可运行于Linux和Mac环境下,但由于Docker虚拟化技术的发展,在Windows下也可以通过DockerforWindows来作为运行环境,通常来说Mac环境下,我们更推荐本地环境部署,以避免Docker共享磁盘缓慢导致MoChat启动速度慢的问题。提示MoChat基于Docker-compose方式的安装视频https://www.bilibi
【Linux 从基础到进阶】Kubernetes 集群搭建与管理
爱技术的小伙子
Linux从基础到进阶 linux kubernetes 运维
Kubernetes集群搭建与管理Kubernetes(简称K8s)是一个用于自动化部署、扩展和管理容器化应用程序的开源平台。它提供了容器编排功能,能够管理大量的容器实例,并支持应用的自动扩展、高可用性和自愈能力。本文将详细介绍如何在CentOS和Ubuntu系统上安装和配置Kubernetes集群,并讲解Kubernetes的基本概念和管理操作。1.Kubernetes基础概念在了解如何搭建Ku
一文读懂ZGC
w_rcss
垃圾回收 JVM ZGC 垃圾回收器 gc jvm G1
ZGC(TheZGarbageCollector)前言ZGC是G1后新推出的垃圾回收器,jdk11仅支持linux,jdk14增加了对windows,macOS的支持。本文将通过对比G1来简单介绍ZGC。什么是ZGC?ZGC(TheZGarbageCollector)是标记-整理算法的并发垃圾回收器,官方解释ZGC只是个名字,没有意义。//开启ZGC-XX:+UnlockExperimentalV
Linux磁盘空间清理
veggend
1、df-h参数-h表示使用「Human-readable」的输出,也就是在档案系统大小使用GB、MB等易读的格式2、du-h–max-depth=1寻找当前目录,哪个文件夹占用空间最大
内网穿透之EW使用、判断服务器是否出网
板栗妖怪
学习 内网渗透
环境搭建使用的是下面文章的环境记一次学习--内网穿透-CSDN博客ew代理然后同样通过thinkphp漏洞写入文件,然后通过蚁剑连接然后上传ew的Linux版本,然后加权执行一层代理正向代理设置正向代理(在ubuntu上),然后kali在proxychain配置文件中连接ubuntu的192.168.244.154的代理端口反向代理在ubuntu上设置反向代理,将连接反弹到kali上的某个端口。然
Linux网络服务配置:从基础到高级
M78NB666
linux 运维 服务器
一、网络服务配置基础1.网络接口配置Linux系统中,网络接口的配置通常通过/etc/network/interfaces文件(Debian/Ubuntu)或/etc/sysconfig/network-scripts/ifcfg-文件(RedHat/CentOS)来完成。配置内容包括IP地址、子网掩码、网关等。2.DNS配置DNS配置通常在/etc/resolv.conf文件中设置,包括指定DN
一文说清GO环境变量-GO111MODULE、GOROOT、GOPATH、GOBIN、GOPRIVATE
kkmoreTech
golang golang 开发语言 后端
文章目录Go的开发模式-GO111MODULE从GOPATH开发模式到gomodule开发模式Go程序安装路径-GOROOTGo工作区-存放第三方包代码GOPATHGo可执行程序-引用包路径GOBIN第三方私有包下载路径-GORIVATEGO环境变量的设置参考资料搭建环境:macOS(linux系统类似)goversion:1.16Go的开发模式-GO111MODULE介绍GO环境变量之前,必须先
【Linux 从基础到进阶】Puppet配置管理工具使用
爱技术的小伙子
Linux从基础到进阶 linux puppet 运维
Puppet配置管理工具使用Puppet是一种开源的配置管理工具,广泛用于自动化管理和配置服务器。它通过声明式的语言定义系统状态,能够跨多台服务器实现一致性配置。Puppet对运维团队来说,是一种强大的工具,能够有效管理服务器配置并简化操作复杂性。本文将详细介绍Puppet的核心概念、安装步骤、以及如何在CentOS和Ubuntu系统上进行配置和管理。1.Puppet的核心概念在使用Puppet之
pycharm 运行celery_python远程调试及celery调试
夏小龙
pycharm 运行celery
部分来自from:https://www.xncoding.com/2016/05/26/python/pycharm-remote.html你是否经常要在Windows7或MACOSX上面开发Python或Web应用程序,但是它们最后需要在linux上面来运行呢?我们经常会碰到开发时没有问题但是到了正式的Linux环境下面却出现问题。那么怎样保证开发环境跟运行环境的一致呢?通常有两种方法解决。一
解线性方程组
qiuwanchi
package gaodai.matrix;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Sc
在mysql内部存储代码
annan211
性能 mysql 存储过程 触发器
在mysql内部存储代码
在mysql内部存储代码,既有优点也有缺点,而且有人倡导有人反对。
先看优点:
1 她在服务器内部执行,离数据最近,另外在服务器上执行还可以节省带宽和网络延迟。
2 这是一种代码重用。可以方便的统一业务规则,保证某些行为的一致性,所以也可以提供一定的安全性。
3 可以简化代码的维护和版本更新。
4 可以帮助提升安全,比如提供更细
Android使用Asynchronous Http Client完成登录保存cookie的问题
hotsunshine
android
Asynchronous Http Client是android中非常好的异步请求工具
除了异步之外还有很多封装比如json的处理,cookie的处理
引用
Persistent Cookie Storage with PersistentCookieStore
This library also includes a PersistentCookieStore whi
java面试题
Array_06
java 面试
java面试题
第一,谈谈final, finally, finalize的区别。
final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能
网站加速
oloz
网站加速
前序:本人菜鸟,此文研究总结来源于互联网上的资料,大牛请勿喷!本人虚心学习,多指教.
1、减小网页体积的大小,尽量采用div+css模式,尽量避免复杂的页面结构,能简约就简约。
2、采用Gzip对网页进行压缩;
GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz
正确书写单例模式
随意而生
java 设计模式 单例
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。
懒汉式,线程不安全
当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样
单例模式
香水浓
java
懒汉 调用getInstance方法时实例化
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(null == ins
安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
AdyZhang
apache http server
安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
每次到这一步都很小心防它的端口冲突问题,结果,特意留出来的80端口就是不能用,烦。
解决方法确保几处:
1、停止IIS启动
2、把端口80改成其它 (譬如90,800,,,什么数字都好)
3、防火墙(关掉试试)
在运行处输入 cmd 回车,转到apa
如何在android 文件选择器中选择多个图片或者视频?
aijuans
android
我的android app有这样的需求,在进行照片和视频上传的时候,需要一次性的从照片/视频库选择多条进行上传
但是android原生态的sdk中,只能一个一个的进行选择和上传。
我想知道是否有其他的android上传库可以解决这个问题,提供一个多选的功能,可以使checkbox之类的,一次选择多个 处理方法
官方的图片选择器(但是不支持所有版本的androi,只支持API Level
mysql中查询生日提醒的日期相关的sql
baalwolf
mysql
SELECT sysid,user_name,birthday,listid,userhead_50,CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')),CURDATE(), dayofyear( CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')))-dayofyear(
MongoDB索引文件破坏后导致查询错误的问题
BigBird2012
mongodb
问题描述:
MongoDB在非正常情况下关闭时,可能会导致索引文件破坏,造成数据在更新时没有反映到索引上。
解决方案:
使用脚本,重建MongoDB所有表的索引。
var names = db.getCollectionNames();
for( var i in names ){
var name = names[i];
print(name);
Javascript Promise
bijian1013
JavaScript Promise
Parse JavaScript SDK现在提供了支持大多数异步方法的兼容jquery的Promises模式,那么这意味着什么呢,读完下文你就了解了。
一.认识Promises
“Promises”代表着在javascript程序里下一个伟大的范式,但是理解他们为什么如此伟大不是件简
[Zookeeper学习笔记九]Zookeeper源代码分析之Zookeeper构造过程
bit1129
zookeeper
Zookeeper重载了几个构造函数,其中构造者可以提供参数最多,可定制性最多的构造函数是
public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, long sessionId, byte[] sessionPasswd, boolea
【Java命令三】jstack
bit1129
jstack
jstack是用于获得当前运行的Java程序所有的线程的运行情况(thread dump),不同于jmap用于获得memory dump
[hadoop@hadoop sbin]$ jstack
Usage:
jstack [-l] <pid>
(to connect to running process)
jstack -F
jboss 5.1启停脚本 动静分离部署
ronin47
以前启动jboss,往各种xml配置文件,现只要运行一句脚本即可。start nohup sh /**/run.sh -c servicename -b ip -g clustername -u broatcast jboss.messaging.ServerPeerID=int -Djboss.service.binding.set=p
UI之如何打磨设计能力?
brotherlamp
UI ui教程 ui自学 ui资料 ui视频
在越来越拥挤的初创企业世界里,视觉设计的重要性往往可以与杀手级用户体验比肩。在许多情况下,尤其对于 Web 初创企业而言,这两者都是不可或缺的。前不久我们在《右脑革命:别学编程了,学艺术吧》中也曾发出过重视设计的呼吁。如何才能提高初创企业的设计能力呢?以下是 9 位创始人的体会。
1.找到自己的方式
如果你是设计师,要想提高技能可以去设计博客和展示好设计的网站如D-lists或
三色旗算法
bylijinnan
java 算法
import java.util.Arrays;
/**
问题:
假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,
您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳
子上进行这个动作,而且一次只能调换两个旗子。
网上的解法大多类似:
在一条绳子上移动,在程式中也就意味只能使用一个阵列,而不使用其它的阵列来
警告:No configuration found for the specified action: \'s
chiangfai
configuration
1.index.jsp页面form标签未指定namespace属性。
<!--index.jsp代码-->
<%@taglib prefix="s" uri="/struts-tags"%>
...
<s:form action="submit" method="post"&g
redis -- hash_max_zipmap_entries设置过大有问题
chenchao051
redis hash
使用redis时为了使用hash追求更高的内存使用率,我们一般都用hash结构,并且有时候会把hash_max_zipmap_entries这个值设置的很大,很多资料也推荐设置到1000,默认设置为了512,但是这里有个坑
#define ZIPMAP_BIGLEN 254
#define ZIPMAP_END 255
/* Return th
select into outfile access deny问题
daizj
mysql txt 导出数据到文件
本文转自:http://hatemysql.com/2010/06/29/select-into-outfile-access-deny%E9%97%AE%E9%A2%98/
为应用建立了rnd的帐号,专门为他们查询线上数据库用的,当然,只有他们上了生产网络以后才能连上数据库,安全方面我们还是很注意的,呵呵。
授权的语句如下:
grant select on armory.* to rn
phpexcel导出excel表简单入门示例
dcj3sjt126com
PHP Excel phpexcel
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Brows
美国电影超短200句
dcj3sjt126com
电影
1. I see. 我明白了。2. I quit! 我不干了!3. Let go! 放手!4. Me too. 我也是。5. My god! 天哪!6. No way! 不行!7. Come on. 来吧(赶快)8. Hold on. 等一等。9. I agree。 我同意。10. Not bad. 还不错。11. Not yet. 还没。12. See you. 再见。13. Shut up!
Java访问远程服务
dyy_gusi
httpclient webservice get post
随着webService的崛起,我们开始中会越来越多的使用到访问远程webService服务。当然对于不同的webService框架一般都有自己的client包供使用,但是如果使用webService框架自己的client包,那么必然需要在自己的代码中引入它的包,如果同时调运了多个不同框架的webService,那么就需要同时引入多个不同的clien
Maven的settings.xml配置
geeksun
settings.xml
settings.xml是Maven的配置文件,下面解释一下其中的配置含义:
settings.xml存在于两个地方:
1.安装的地方:$M2_HOME/conf/settings.xml
2.用户的目录:${user.home}/.m2/settings.xml
前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
ubuntu的init与系统服务设置
hongtoushizi
ubuntu
转载自:
http://iysm.net/?p=178 init
Init是位于/sbin/init的一个程序,它是在linux下,在系统启动过程中,初始化所有的设备驱动程序和数据结构等之后,由内核启动的一个用户级程序,并由此init程序进而完成系统的启动过程。
ubuntu与传统的linux略有不同,使用upstart完成系统的启动,但表面上仍维持init程序的形式。
运行
跟我学Nginx+Lua开发目录贴
jinnianshilongnian
nginx lua
使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,利用春节期间总结了一份基本的学习教程,希望对大家有用。也欢迎谈探讨学习一些经验。
目录
第一章 安装Nginx+Lua开发环境
第二章 Nginx+Lua开发入门
第三章 Redis/SSDB+Twemproxy安装与使用
第四章 L
php位运算符注意事项
home198979
位运算 PHP &
$a = $b = $c = 0;
$a & $b = 1;
$b | $c = 1
问a,b,c最终为多少?
当看到这题时,我犯了一个低级错误,误 以为位运算符会改变变量的值。所以得出结果是1 1 0
但是位运算符是不会改变变量的值的,例如:
$a=1;$b=2;
$a&$b;
这样a,b的值不会有任何改变
Linux shell数组建立和使用技巧
pda158
linux
1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 1 一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${#a[@]} 5 用${#数组名[@或
hotspot源码(JDK7)
ol_beta
java HotSpot jvm
源码结构图,方便理解:
├─agent Serviceab
Oracle基本事务和ForAll执行批量DML练习
vipbooks
oracle sql
基本事务的使用:
从账户一的余额中转100到账户二的余额中去,如果账户二不存在或账户一中的余额不足100则整笔交易回滚
select * from account;
-- 创建一张账户表
create table account(
-- 账户ID
id number(3) not null,
-- 账户名称
nam