Author: Jkfkgnrk
-

discuz nginx 的静态化配置
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last; rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last; rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last; rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last; rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last; rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last; rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last; rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last; rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last; if (!-e $request_filename) { return 404; }
-
discuz 分组取第一个aid,并将宽度加1
选取第一个aid select a.aid from pre_forum_attachment_9 a where width<>801 and aid=(select min(aid) from pre_forum_attachment_9 where tid=a.tid) order by a.tid; 批量将第一张图宽度加1 update pre_forum_attachment_9 set width=width+1 where aid in (234,23423,23423423,234234); 新贴将第一张图宽度加1 update pre_forum_attachment_0 set width=width+1 where filename=’1.jpg’ and tid > 466456; update pre_forum_attachment_1 set width=width+1 where filename=’1.jpg’ and tid > 466456; update pre_forum_attachment_2 set width=width+1 where filename=’1.jpg’ and…
-

-

Discuz X3.3 漏洞修补
1、vi config/config_global.php,修改 $_config[‘cookie’][‘cookiepre’] 的值为任意。 2、vi source/admincp/admincp_setting.php ,将 define(‘UC_DBPW’, ‘”.$ucdbpassnew.”‘)” 修改为 define(‘UC_DBPW’, ‘”.addslashes($ucdbpassnew).”‘)” https://mp.weixin.qq.com/s/eqUYmWJD3OTo_pXOkQdmvQ
-

discuz 编辑图片和附件不能显示问题解决办法
source/module/forum/forum_image.php $nocache = !empty($_GET[‘nocache’]) ? 1 : 0; 直接改成 $nocache = 0; 直接调用缩略图
-
Discuz的积分计算公式积分排名积分记录sql查询
总积分是衡量用户级别的唯一标准,您可以在此设定用户的总积分计算公式,其中 posts 代表发帖数 (主题 + 回复数);threads 代表用户发表的主题数;digestposts 代表精华帖数;oltime 代表用户总在线时间(小时);friends 代表好友数;doings 代表发表的记录数;blogs 代表发表的日志数;albums 代表上传的相册数;sharings 代表发表的分享数;extcredits1~extcredits8 分别代表上述 8 个自定义积分。公式中可使用包括 + – * / () 在内的运算符号 默认: 发帖数+精华帖数*5+威望*2+金钱+贡献 表达式: posts+digestposts*5+extcredits1*2+extcredits2+extcredits3 设置: 全局–积分设置–查看积分规则 积分排名:select uid,username,credits from pre_common_member; 积分记录: root@iZ2513jnt1xZ:/var/log/mysql# tail -10000 mysql.log|grep credits|grep SET|grep UPDATE2021-07-02T16:44:30.088098Z 5947 Query UPDATE pre_common_member_count SET `extcredits2`=`extcredits2`+’60’ WHERE uid IN (‘5’)2021-07-02T16:44:59.474907Z 5986…
-
利用微信(小程序)记录发票信息
根据税务要求,从2017年7月1日起对外索取增值税普通发票时,除填写公司名称外,必须在”纳税人识别号”栏填写购买方的纳税人识别号或统一社会信用代码。税号(社会信用代码)那么长怎么记得住呀?。步骤如下(具体可见附件): 保存上述开票信息至微信”我”; 通过”我”查询或转发开票信息至同事 希望”发票小助手”能帮助各位同学解决如何记忆公司开票信息,方便大家在出差、商场购买商品或服务时正确开具出符合税务要求的发票!! 发票开票信息建立: 1、在查找栏中输入:发票小助手 2、进入发票小助手,并输入公司开票信息 3、保存到微信—”我” 查看发票开票信息: 路径:点击”我”——”我的发票抬头”——打开
-
Docker–利用Supervisor在同一个容器中运行wordpress 包含httpd and mysql
配置文件地址: https://github.com/how2dock/docbook/tree/master/ch01/supervisor 建立wordpress目录,按配置文件地址建3个文件: Dockerfile (保护数据库密码) Supervisord.conf wp-config.php cd wordpress 建立镜像: docker build -t wordpress . 运行容器: docker run –d –p 80:80 wordpress 网页可以访问这个ip: http://xxx:80 下载一个工具: wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker; echo “[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker” >> ~/.bashrc; source ~/.bashrc 利用工具docker-enter进入容器: docker-enter b98d252eb7f6 /bin/bash docker ps –a 查出容器id 进入容器mysql…
-
Docker–使用 Dockerfile 定制nginx镜像
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v2 3e3413f5d526 3 hours ago 109MB ubuntu 14.04 2ff3b426bbaa 3 days ago 188MB nginx latest 3448f27c273f 8 days ago 109MB # cat Dockerfile FROM nginx RUN echo ‘<h1>Hello, Docker!1111111111</h1>’ > /usr/share/nginx/html/index.html # docker build -t nginx:v3 . Sending build context to Docker daemon 2.048kB Step…
-
Curl 命令用法
获取页面内容 当我们不加任何选项使用 curl 时,默认会发送 GET 请求来获取链接内容到标准输出。 curl http://www.moneyslow.com 显示 HTTP 头 如果我们只想要显示 HTTP 头,而不显示文件内容,可以使用 -I 选项: curl -I http://www.moneyslow.com 输出为: HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Thu, 11 May 2017 08:24:45 GMT Content-Type: text/html; charset=utf-8 Content-Length: 24206 Connection: keep-alive X-Powered-By: Express Cache-Control: public, max-age=0 ETag: W/”5e8e-Yw5ZdnVVly9/aEnMX7fVXQ” Vary: Accept-Encoding 也可以同时显示 HTTP 头和文件内容,使用 -i 选项: curl -i http://www.moneyslow.com 输出为: HTTP/1.1 200…
-
Ansible 工作机制和简单命令
Ansible工作机制Ansible 在管理节点将 Ansible 模块通过 SSH 协议推送到被管理端执行,执行完之后自动删除,可以使用 SVN 等来管理自定义模块及编排. 由上面的图可以看到 Ansible 的组成由 5 个部分组成:Ansible: 核心Modules: 包括 Ansible 自带的核心模块及自定义模块Plugins: 完成模块功能的补充,包括连接插件、邮件插件等Playbooks: 编排,定义 Ansible 多任务配置文件,有 Ansible 自动执行Inventory: 定义 Ansible 管理主机的清单Ansible安装除了源码编译安装还有两种比较简单的安装方式。3.1 yum安装rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmyum install python-devel ansible -y3.2 pip安装pip install ansibleAnsible的简单使用Ansible 通过读取默认的主机清单配置/etc/ansible/hosts,可以同时连接到多个远程主机上执行任务。默认路径可以通过修改 ansible.cfg 的 hostfile 参数指定路径。cat /etc/ansible/hosts[web]192.168.1.100192.168.1.101注:为了避免Ansible下发指令时输入目标主机密码,需要提前配置免密钥登陆#@@ping测试,所有主机ansible all -m ping#@@运行shell命令,web组服务器ansible web -m shell -a “ps aux | grep java”#@@文件传输(copy) 将ansible本地的/etc/hosts…
-
Docker安装—centos7 下安装docker-ce 最新版
官方文档:https://docs.docker.com/engine/installation/linux/docker-ce/centos/ 1 删除旧版本docker yum remove docker docker-common container-selinux docker-selinux docker-engine 2 安装yum-utils 我们需要 yum-config-manager 工具 yum install -y yum-utils 3 利用yum增加 docker-ce 的repo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo 4 默认edge repository 是disable 的,我们来enable 它 yum-config-manager –enable docker-ce-edge 5 更新软件包信息: yum makecache fast 6 安装最新版本的docker: yum –y install docker-ce # rpm -qa|grep docker docker-ce-selinux-17.05.0.ce-1.el7.centos.noarch docker-ce-17.05.0.ce-1.el7.centos.x86_64 7 有时候需要安装特定版本的docker,首先list出可用版本: #yum…
-
Docker 的平台支持和版本说明
平台支持: 目前docker的CE和EE所支持的平台情况如下所示,大家所钟情的Ubuntu和CentOS作为Linux发行版所支持的CE和EE均支持的。 版本说明: 2017年的3月1号开始,版本的格式变为如下 项目 说明 版本格式 YY.MM stable版本 (gives you reliable updates every quarter) 每个季度发行 edge版本 (gives you new features every month) 每个月发行 当前CE版本 17.05.0-ce
-

使用Nginx反向代理网站
server { listen 80; root /home/wwwroot/default; location / { proxy_pass http://downloads.moneyslow.com/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /f/ { proxy_pass http://www.sourceforge.net/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /home/wwwlogs/access.log; }
-

-
如何查看 sqlserver2008和sqlserver2012 端口号
通过存储过程查看 安装了sqlserver2008和sqlserver2012两个版本的数据库。我们首先打开sqlserver management studio(简称SSMS)连接sqlserver2008的数据库实例,然后执行如下存储过程: –查询端口号 exec sys.sp_readerrorlog 0, 1, ‘listening’ 查询出来的结果如下图所示: 从上图我们可以看出sqlserver2008的端口号是5419。 接下来关闭SSMS,再从重新打开,接着连接sqlserver2012。继续执行上述的存储过程,查询结果如下图所示: 上图说明sqlserver2012的端口号是5413。 通过Sql Server配置管理器(SSCM) 首先打开SSCM,如下图所示: 然后再sqlserver网络配置中开启TCP/IP协议,如下图所示: 在这里我们要将SQLEXPRESS和SQL2012两个协议中的TCP/IP协议都开启。 然后查看TCP/IP协议的属性,如下所示: 如上图所示,我们在IPALL中看到了”TCP动态端口”的值为5419,这就是我们sqlserver2008的端口号。我们打开sql2012的协议查看,发现IPALL属性如下: sql2012的端口号是5413,这个跟我们用存储过程查出来的端口号一模一样。 通过sp_readerrorlog来查看sql server监听的协议以及端口(补充:2012-9-10) 在SSMS中输入sp_readerrorlog命令来查看sql server信息,回到到如下类似的监听信息: –tcp协议 Server is listening on [ ‘any’ <ipv6> 1500]. Server is listening on [ ‘any’ <ipv4> 1500]. Server is listening on [ ‘any’ <ipv6> 1433]. Server is listening on…
-
Linux升级时不升级内核的方法
RedHat/CentOS使用 yum update 更新时,默认会升级内核。但有些服务器硬件在升级内核后,新的内核可能会认不出某些硬件,要重新安装驱动,很麻烦。所以在生产环境中不要轻易的升级内核,除非您确定升级内核后不会出现麻烦的问题。 如果使用yum update更新时不升级内核,有两种方法: 方法一 直接在yum的命令后面加参数,这个命令只生效一次: # yum update –exclude=kernel* 方法二 修改yum命令的配置文件,永久生效。 这里以 CentOS 6.6 为例来进行说明: 1、首先检查内核版本以及系统版本。 [root@localhost ~]# uname -r 2.6.32-504.el6.x86_64 [root@localhost ~]# cat /etc/issue CentOS release 6.6 (Final) Kernel \r on an \m 2、将配置文件保存备份。 [root@localhost ~]# cp /etc/yum.conf /etc/yum.conf.bak 3、编辑/etc/yum.conf文件。 [root@localhost ~]# vi /etc/yum.conf 4、在[main]的后面加入如下内容: exclude=kernel* 5、按下Esc,输入下面命令进行保存:wq。 6、使用 yum update更新。 [root@localhost yum.repos.d]# yum…
-
nfs showmount clnt_create:RPC:Unknown host
# /etc/init.d/nfs start 正常 # showmount -e localhost 报错: clnt_create:RPC:Unknown host 解决: # /etc/init.d/rpcsvrgssd status rpc.svrgssd is stopped # /etc/init.d/rpcsvrgssd start # /etc/init.d/nfs restart
-

linux dns dig 命令详解
Dig简介: Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。 Dig的源码是ISC BIND大包的一部分,但是大多编译和安装Bind的文档都不把它包括在内,但是在linux系统下,它通常是某个包的一部分,在Gentoo下是 bind-tools,在Redhat/Fedora下是 bind-utils,或者在Debian下是 dnsutils。 看懂默认输出: 最简单最常见的查询是查询一台主机,但是默认情况下,Dig的输出信息很详细。你可能不需要所有的输出, 但是它确实值得知道。下面是一个带有注释的查询: $ dig www.isc.org 上面是我调用dig 的命令行。 ; <<>> DiG 9.2.3 <<>> www.isc.org ;; global options: printcmd Dig的部分输出告诉我们一些有关于它的版本信息(version 9.2.3)和全局的设置选项,如果+nocmd在命令行下 是第一个参数的话,那么这部分输出可以通过加+nocmd的方式查询出来。 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43071 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3 在这里,Dig告诉我们一些从DNS返回的技术信息,这段信息可以用选项 +[no]comments来控制显示,但是小心,禁止掉comments也可能关闭一些其它的选项。…
-
http和socket之长连接和短连接区别
TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议 UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。 http的长连接 HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。 什么时候用长连接,短连接? 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。 而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。 总之,长连接和短连接的选择要视情况而定。 发送接收方式 1、异步 报文发送和接收是分开的,相互独立的,互不影响。这种方式又分两种情况: (1)异步双工:接收和发送在同一个程序中,由两个不同的子进程分别负责发送和接收 (2)异步单工:接收和发送是用两个不同的程序来完成。 2、同步 报文发送和接收是同步进行,既报文发送后等待接收返回报文。 同步方式一般需要考虑超时问题,即报文发出去后不能无限等待,需要设定超时时间,超过该时间发送方不再等待读返回报文,直接通知超时返回。 在长连接中一般是没有条件能够判断读写什么时候结束,所以必须要加长度报文头。读函数先是读取报文头的长度,再根据这个长度去读相应长度的报文。 Socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 通信过程: 主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接,而建立 Socket 连接必须需要底层 TCP/IP 协议来建立 TCP 连接。建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。我们知道网络层使用的 IP 协议可以帮助我们根据 IP 地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过 TCP 或 UPD 的地址也就是端口号来指定。这样就可以通过一个 Socket 实例唯一代表一个主机上的一个应用程序的通信链路了。 建立通信链路当客户端要与服务端通信,客户端首先要创建一个 Socket 实例,操作系统将为这个 Socket 实例分配一个没有被使用的本地端口号,并创建一个包含本地和远程地址和端口号的套接字数据结构,这个数据结构将一直保存在系统中直到这个连接关闭。在创建…
-
利用Dante架设linux的socks5代理服务器
dante-server 是一个国外开源的socks5代理服务器软件,官网地址http://www.inet.no/dante/安装:apt-get install dante-server完成后主… dante-server 是一个国外开源的socks5代理服务器软件,官网地址 http://www.inet.no/dante/ 安装:apt-get install dante-server完成后主要编辑/etc/danted.conf 这个文件: # the server will log both via syslog, to stdout and to /var/log/lotsoflogs #logoutput: syslog stdout /var/log/lotsoflogs logoutput: syslog # The server will bind to the address 10.1.1.1, port 1080 and will only # accept connections going to that address. internal: eth0 port =…
-
Linux下的双网卡绑定bond0 em1 em2
一、什么是bonding Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用,用于网络负载均衡及网络冗余 二、bonding应用方向1、网络负载均衡 对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多 个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding 2、网络冗余 对于服务器来说,网络设备的稳定也是比较重要的,特别是网卡。在生产型的系统中,网卡的可靠性就更为重要了。在生产型的系统中,大多通过硬件设备的冗余来提供服务器的可靠性和安全性,比如电源。bonding 也能为网卡提供冗余的支持。把多块网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡自动启用,并提供正常的服务,即:默认情况下只有一块网卡工作,其它网卡做备份 三、bonding实验环境及配置 1、实验环境 系统为:CentOS,使用2块网卡(em1、em2 ==> bond0)来实现bonding技术 2、bonding配置 第一步:先查看一下内核是否已经支持bonding 1)如果内核已经把bonding编译进内核,那么要做的就是加载该模块到当前内核;其次查看ifenslave该工具是否也已经编译modprobe -l bond* 或者 modinfo bonding modprobe bonding lsmod | grep ‘bonding’ echo ‘modprobe bonding &> /dev/null’ >> /etc/rc.local(开机自动加载bonding模块到内核)which ifenslave注意:默认内核安装完后就已经支持bonding模块了,无需要自己手动编译 2)如果bonding还没有编译进内核,那么要做的就是编译该模块到内核(1)编译bonding tar -jxvf kernel-XXX.tar.gz cd kernel-XXX make menuconfig选择 ” Network device support ” -> ” Bonding driver support ” make bzImage make modules && make modules_install make install (2)编译ifenslave工具gcc -Wall -O -I kernel-XXX/include…
-
linux下查看uuid的3种方法
1 命令查看:blkid2 文件查看:ls -l /dev/disk/by-uuid3 命令查看:vol_id /dev/sda1 UUID的作用及意义 原因1:它是真正的唯一标志符 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。 原因2:设备名并非总是不变的 自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。 使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。 原因3:Ubuntu中的许多关键功能现在开始依赖于UUID 例如grub──系统引导程序,现在可以识别UUID,打开你的/boot/grub/menu.lst,你可以看到类似如下的语句:title Ubuntu hardy (development branch), kernel 2.6.24-16-genericroot (hd2,0)kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=c73a37c8-ef7f-40e4-b9de-8b2f81038441 ro quiet splashinitrd /boot/initrd.img-2.6.24-16-genericquiet
-
改变网卡的速度和双工
没有比购买一个完全的Linux兼容网卡更好的Linux投资了。大部分的Linux厂商在他们网站上都有一份兼容的硬件列表:在开始连接你的机器到网络之前请仔细阅读它。如果你没有找到任何在本地的计算机商店可以买到的型号,那么同系列也是可以的。大多数网卡都能正常工作,但只有完全兼容的可为您提供无差错的,持续的吞吐量。 Linux缺省会在网卡连接到路由器上时自动协商判断网卡的速度和双工。配置一个路由器端口自动协商速度和双工往往是不足够的,因为不同的协议标准执行上常会有分歧。 实际上,网卡即使协商失败也会工作,但这通常会导致在网卡上使用ifconfig -a命令时看到许多冲突类型的错误和极低的性能。在故障排除时不要只把这类错误局限于协商失败;问题也可能是坏的网卡,路由器端口,或者网线导致的。 使用mii-tool mii-tool是一个原始的设置网卡速度和双工的Linux工具。它以注定会被抛弃,而由新的ethtool命令取而代之,但是很多老的网卡只支持mii-toll,所以你还需要知道它。不带任何参数的执行命令会产生一个简要的状态报告,如下面样例所示,对于不支持的网卡将提示Operation not supported信息。mii-tool不兼容的网卡往往仍然可以工作,但是你需要根据制造商的指南来设定速度和双工,而不能自动协商。 [root@bigboy tmp]# mii-tool SIOCGMIIPHY on ‘eth0’ failed: Operation not supported eth1: 100 Mbit, half duplex, link ok [root@bigboy tmp]# 通过-v参数使用verbose模式,你可以获得更多更详细的信息。在这个例子中,协商正常,网卡选择100Mbps,全双工模式(FD)。 [root@bigboy tmp]# mii-tool -v eth1: negotiated 100baseTx-FD, link ok product info: vendor 00:10:18, model 33 rev 2 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok…
-
hydra 配合 libssh 扫描弱口令
[ERROR] Compiled without LIBSSH v0.4.x support, module is not available! 如何装libssh呢?方法如下: 方法一、支持apt-get的话 apt-get purge hydra apt-get install cmake libssl-dev 方法二、编译安装 2.1 libssh wget http://www.libssh.org/files/0.4/libssh-0.4.8.tar.gz tar zxf libssh-0.4.8.tar.gz cd libssh-0.4.8 mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DWITH_SSH1=ON .. make make install 2.2 hydra…
-

如何在windows7下安装dig工具
1 下载bind地址:http://www.isc.org/downloads/选择下面的downloadss按钮,把右面的加号打开,如图:咱就选当前稳定版,点download:根据本机的类型选择,这里我的电脑是32位的,选择下载。下载zip包文件,解压安装,双击文件BINDInstall.exe,如图:只选择tools即可,安装目录自己定义:这样就安装完成。最好,把c:\dig 目录放到你的环境变量里面去:我的电脑,右键属性,高级系统设置,高级标签,环境变量,加到path属性里。
-
如何获取电信运营商ip地址分配的详细信息
whois 工具获取 APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一些电信运营商的IP地址分配情况:shell> wget http://ftp.apnic.net/apnic/dbase/tools/ripe-dbase-client-v3.tar.gzshell> tar xzvf ripe-dbase-client-v3.tar.gzshell> cd whois-3.1shell> ./configureshell> make完成上述编译安装工作后,我们开始获取IP地址段;中国网通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CNCGROUP > /var/cnc中国电信:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CHINANET > /var/chinanet中国铁通:shell> ./whois3 -h whois.apnic.net -l -i mb MAINT-CN-CRTC > /var/crtc打开获取后的文件可以看到里面的信息非常详细,甚至可以看到各个分公司的负责人、电话、电子邮件等等信息。如果想得到一份整齐干净的IP地址段文件,只要用grep和awk简单过滤就可以了:)一个转自CU的自动获取脚本 :复制代码 代码如下:#!/bin/sh#auto get the IP Table#get the newest delegated-apnic-latestrm delegated-apnic-latestif type wgetthen wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latestelse fetch http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latestfigrep…
-
安装两个mysql 端口不同
./configure –prefix=/usr/local/mysql3307 –sysconfdir=/usr/local/mysql3307/etc –with-tcp-port=3307 –localstatedir=/ssdc/mysqldata –with-mysqld-user=mysql –enable-assembler –datadir=/ssdc/mysqldata –with-mysqld-ldflags=-all-static –with-client-ldflags=-all-static –with-unix-socket-path=/usr/local/mysql3307/mysql.sock –with-charset=utf8 –with-collation=utf8_general_ci –with-extra-charsets=all /usr/local/mysql3307/bin/mysql_install_db –user=mysql –datadir=/ssdc/mysqldata
-
linux下查找占用磁盘io的进程
问题描述: 一个文件正在被进程写 我想查看哪个进程在写这个文件。 解决思路: Linux 下每个文件都会在某个块设备上存放,当然也都有相应的 inode ,那么透过 vfs.write 我们就可以知道谁在不停的写入特定的设备上的 inode。 那用什么工具呢? 这个神器就是systemtap ,具体的命令就是stap。 参考:http://cccgw.info/2012/07/systemtap%E5%85%A5%E9%97%A8/ 安装很简单:yum -y install systemtap 但是这个安装完毕,还需要内核的支持,不然会报错。具体的说就是需要安装kernel-debuginfo包。 安装过程: 1 查看内核版本 uname -r 2.6.32-279.el6.x86_64 2 下载相应的包: wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-2.6.32-279.el6.x86_64.rpm wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-common-2.6.32-279.el6.x86_64.rpm 3 安装rpm包: rpm -ivh kernel-debuginfo-2.6.32-279.el6.x86_64.rpm kernel-debuginfo-common-2.6.32-279.el6.x86_64.rpm 4 确保安装包正常: rpm -qa|grep kernel-debug kernel-debuginfo-common-x86_64-2.6.32-279.el6.x86_64 kernel-debuginfo-2.6.32-279.el6.x86_64…
-
牛逼大了的ssh
1、复制SSH密钥到目标主机,开启无密码SSH登录 ssh-copy-id user@host 如果还没有密钥,请使用ssh-keygen命令生成。 2、从某主机的80端口开启到本地主机2001端口的隧道 ssh -N -L2001:localhost:80 somemachine 现在你可以直接在浏览器中输入http://localhost:2001访问这个网站。 3、将你的麦克风输出到远程计算机的扬声器 dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp 这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是,声音质量很差,你会听到很多嘶嘶声。 4、比较远程和本地文件 ssh user@host cat /path/to/remotefile | diff /path/to/localfile – 在比较本地文件和远程文件是否有差异时这个命令很管用。 5、通过SSH挂载目录/文件系统 sshfs name@server:/path/to/folder /path/to/mount/point 从http://fuse.sourceforge.net/sshfs.html下载sshfs,它允许你跨网络安全挂载一个目录。 6、通过中间主机建立SSH连接 ssh -t reachable_host ssh unreachable_host Unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的”隐藏”连接,创建起到unreachable_host的连接。 7、将你的SSH公钥复制到远程主机,开启无密码登录 – 简单的方法 ssh-copy-id username@hostname 8、直接连接到只能通过主机B连接的主机A ssh -t hostA ssh hostB…
-
怎样分辨u盘是USB2.0还是3.0
1、看盘体上的产品标识。正规的U盘产品,在盘体上都会清晰明确的标示有”USB2.0″或”USB3.0″字样来标明U盘接口版本,从基座颜色上区分:USB2.0接口基座一般为黑色或者白色。USB3.0接口基座为蓝色。2、看接口中塑料片的颜色。此方法并不绝对有效,但是大多数USB2.0接口的U盘接口内的塑料片颜色都是黑色或者白色,USB3.0接口的U盘接口内的塑料片颜色则是蓝色。从U盘插口针脚区分:USB 2.0是4针脚,而USB 3.0采用了9针脚,针脚比USB2.0多。3、从传输速度上区分:此方法需要借助于工具,理论上,USB 2.0的速率为480 Mbps,USB 3.0则可达到4.8 Gbps。看接口内金属引脚的数量。此方法绝对有效。USB3.0接口使用了9个金属接脚,以前四后五的方式排列,而USB2.0接口只使用了4个金属引脚,4个引脚排成一排。3.0 的接口:
-
linux下查看uuid的3种方法
1 命令查看:blkid2 文件查看:ls -l /dev/disk/by-uuid3 命令查看:vol_id /dev/sda1 UUID的作用及意义 原因1:它是真正的唯一标志符 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。 原因2:设备名并非总是不变的 自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。 使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。 原因3:Ubuntu中的许多关键功能现在开始依赖于UUID 例如grub──系统引导程序,现在可以识别UUID,打开你的/boot/grub/menu.lst,你可以看到类似如下的语句:title Ubuntu hardy (development branch), kernel 2.6.24-16-genericroot (hd2,0)kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=c73a37c8-ef7f-40e4-b9de-8b2f81038441 ro quiet splashinitrd /boot/initrd.img-2.6.24-16-genericquiet
-
http和socket之长连接和短连接区别
TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议 UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。 http的长连接 HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。 什么时候用长连接,短连接? 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。 而像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连好。 总之,长连接和短连接的选择要视情况而定。 发送接收方式 1、异步 报文发送和接收是分开的,相互独立的,互不影响。这种方式又分两种情况: (1)异步双工:接收和发送在同一个程序中,由两个不同的子进程分别负责发送和接收 (2)异步单工:接收和发送是用两个不同的程序来完成。 2、同步 报文发送和接收是同步进行,既报文发送后等待接收返回报文。 同步方式一般需要考虑超时问题,即报文发出去后不能无限等待,需要设定超时时间,超过该时间发送方不再等待读返回报文,直接通知超时返回。 在长连接中一般是没有条件能够判断读写什么时候结束,所以必须要加长度报文头。读函数先是读取报文头的长度,再根据这个长度去读相应长度的报文。 Socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 通信过程: 主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接,而建立 Socket 连接必须需要底层 TCP/IP 协议来建立 TCP 连接。建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。我们知道网络层使用的 IP 协议可以帮助我们根据 IP 地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过 TCP 或 UPD 的地址也就是端口号来指定。这样就可以通过一个 Socket 实例唯一代表一个主机上的一个应用程序的通信链路了。 建立通信链路当客户端要与服务端通信,客户端首先要创建一个 Socket 实例,操作系统将为这个 Socket 实例分配一个没有被使用的本地端口号,并创建一个包含本地和远程地址和端口号的套接字数据结构,这个数据结构将一直保存在系统中直到这个连接关闭。在创建…
-
Perl篇:常用调试命令
本文所用到的Perl调试器为Perl解释器本身,可以通过-d开关打开调试功能。本文不会将涵盖所有的调试命令,只会解释一些我们常用的调试命令,希望对热爱Perl的朋友有所帮助。 打开调试开关 Perl是解释型语言,运行一个Perl脚本,可以通过在命令行中敲入形如 Perl Test.pl 的命令直接解释执行。如果想调试我们的脚本程序,可以加上-d选项,命令为perl -d Test.pl,回车后程序会停在DB<1>处,如下图所示: 从上图看出程序执行到主(main)程序的第二行(Test.pl 2) 插入/查看/删除断点 插入断点可以使用b命令,命令格式为:b 行号/函数名 条件,在上图中DB<1>处即可设置断点,如下图所示: 在子过程SetInitValue处设置了断点 查看设置的断点使用L命令,注意是大写,小写是显示尚未执行到的代码的部分内容,如下图所示: 断点设置在21行处 删除设置的断点请使用B命令,该命令格式为:B 行号| *,可以指定行号来删除断点或者使用通配符*来删除所有的断点,如下图所示: 删除21行处的断点 增加/查看/删除监视 添加监视对于调试程序非常重要,本示例脚本中定义了一个名叫$val的变量,初始值为1,在SetInitValue函数中修改值为12。通过对其添加监视,来理解Perl中怎么增减删除监视的 添加一个$val==1表达式的监视,命令为w $val==1,如下图所示: 添加对表达式的一个监视 …
-
discuz 修改discuz.gtimg.cn http 为 https
http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1 修改: source/plugin/manyou/Service/DiscuzTips.php source/plugin/manyou/Service/Doctor.php
-
Centos 7 安装mysql
Introduction MySQL is a popular open source relational database. The popularity of MySQL means there is an abundance of information online and well documented client libraries available. MySQL supports many common database features such as replication, partitioning, triggers, views, and stored procedures. A plugin storage architecture allows support for multiple storage engines. Requirements Single server…
-
如何在Centos7下修改网卡名称
首先,禁止系统自带的命名规则,需要添加一个参数到内核启动文件中。 编辑 /etc/default/grub 添加 “net.ifnames=0” 如下图 利用如下命令重新生成grub配置文件: $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg 编辑 /etc/sysconfig/network-scripts 下的相应文件 运行命令 udevadm control –reload-rules 重启网络服务
-
如何禁止IPv6 on CentOS 7 / RHEL 7
方法 1: Edit the /etc/sysctl.conf. # vi /etc/sysctl.conf Put the following entry to disable IPv6 for all adapter. net.ipv6.conf.all.disable_ipv6 = 1 For particular adapter. (If the network card name is eno16777736). net.ipv6.conf.eno16777736.disable_ipv6 = 1 To reflect the changes by executing the following command. # sysctl -p 方法 2: Create file called disableipv6.conf in /etc/sysctl.d. # vi /etc/sysctl.d/disableipv6.conf Put the…
-

Centos7 下如何配置静态ip地址
In this small tutorial i will explain how to configure static ip address on CentOS 7 minimal. First, need to edit the set up for the ethernet. Let’s start with editing “/etc/sysconfig/network-scripts/ifcfg-enp0s3″ file: vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 HWADDR=08:00:27:6C:FF:91 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPADDR=192.168.0.88 IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=enp0s3 UUID=ea68db6e-461e-427d-b9a8-bfcf6e1a4fc6 ONBOOT=yes Save and exit. Now, configure default getaway:…