Oracle SQL/PL 求1到100以内的奇数和偶数和 技术文章

declare
i number;
i_sum number :=0;
begin
for i in 1..100 loop
if i mod 2 = 0 then
i_sum := i_sum + i;
dbms_output.put_line(i);
end if;
end loop;
dbms_output.put_line('1-100偶数和:'||i_sum);
dbms_output.put_line('作者:https://mrxn.net');
end;


declare
i number;
i_sum number :=0;
begin
for i in 1..50 loop
i_sum := i_sum + i*2;
end loop;
dbms_output.put_line('1-100偶数和:'||i_sum);
dbms_output.put_line('作者:https://mrxn.net');
end;

declare
i number;
i_sum number :=0;
begin
for i in 1..100 loop
if i mod 2 != 0 then
i_sum := i_sum + i;
dbms_output.put_line(i);
end if;
end loop;
dbms_output.put_line('1-100奇数和:'||i_sum);
dbms_output.put_line('作者:https://mrxn.net');
end;

标签: Oracle

admin 发布于  2018-6-5 16:43 

Supervisor重新加载配置&启动新的进程 技术文章

一、添加好配置文件后。一般是在:/etc/supervisor/目录下,当然,我推荐大家在安装supervisor的时候呢,将主配置文件和其他需要守护的应用程序的配置文件分开,以便于管理和区别,这里把我的主配置文集贴出来,仅供参考:

[unix_http_server]
;file=/tmp/supervisor.sock ; UNIX socket 文件,supervisorctl 会使用
file=/home/supervisor/supervisor.sock ; (the path to the socket file)
;chmod=0700 ; socket 文件的 mode,默认是 0700
;chown=nobody:nogroup ; socket 文件的 owner,格式: uid:gid
;[inet_http_server] ; HTTP 服务器,提供 web 管理界面
;port=127.0.0.1:9001 ; Web 管理后台运行的 IP 和端口,如果开放到公网,需要注意安全性
;username=usersuper ; 登录管理后台的用户名
;password=yourpasswd.. ; 登录管理后台的密码
[supervisord]
;logfile=/tmp/supervisord.log ; 日志文件,默认是 $CWD/supervisord.log
logfile=/var/log/supervisor/supervisord.log ;日志文件,修改为专门设置的目录
logfile_maxbytes=50MB ; 日志文件大小,超出会 rotate,默认 50MB
logfile_backups=10 ; 日志文件保留备份数量默认 10
loglevel=info ; 日志级别,默认 info,其它: debug,warn,trace
;pidfile=/tmp/supervisord.pid ; pid 文件
pidfile=/home/supervisor/supervisord.pid ;
nodaemon=false ; 是否在前台启动,默认是 false,即以 daemon 的方式启动
minfds=1024 ; 可以打开的文件描述符的最小值,默认 1024
minprocs=200 ; 可以打开的进程数的最小值,默认 200
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
;serverurl=unix:///tmp/supervisor.sock ; 通过 UNIX socket 连接 supervisord,路径与 unix_http_server 部分的 file 一致
serverurl=unix:///home/supervisor/supervisor.sock ;
;serverurl=http://127.0.0.1:9001 ; 通过 HTTP 的方式连接 supervisord
; 包含其他的配置文件
[include]
files = /etc/supervisor/*.conf ; 可以是 *.conf 或 *.ini

二、更新新的配置到supervisord

supervisorctl update

三、重新启动配置中的所有程序

supervisorctl reload 

四、启动某个进程(program_name=你配置中写的程序名称)

supervisorctl start program_name

五、查看正在守候的进程

supervisorctl

六、停止某一进程 (program_name=你配置中写的程序名称)

pervisorctl stop program_name

七、重启某一进程 (program_name=你配置中写的程序名称)

supervisorctl restart program_name 

八、停止全部进程

supervisorctl stop all 

注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。


admin 发布于  2018-5-28 15:56 

Oracle 11g sys和system用户密码都忘记了的解决办法 技术文章

最近因为工作需要在学习Oracle,但是我这个人记性不好,当初设置的system密码忘了。

搜索查看了很多的关于忘记Oracle密码的解决办法,加上自己的亲自实践(前车之鉴),得出如下方法修改你忘记的Oracle中的system这些用户密码,很简单,只有几步。

第一步,打开的sqlplus.(系统菜单Oracle下面的或者是cmd里面你输入sqlplus都可以)

第二步,在弹出的输入用户名界面输入 /as sysdba 然后使劲儿啪的一下敲下你的回车键!

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 4月 26 14:09:47 2018

Copyright (c) 1982, 2010, Oracle. All rights reserved.

请输入用户名: /as sysdba

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

第三步,在SQL>的右边输入:conn sys/sys as sysdba;(我也不知道原理,为嘛这里可以连接)

PS:因为sys的也忘了=_=|,所以不信的可以去sqlplus下测试应该是如下结果:

请输入用户名: sys
输入口令:
ERROR:
ORA-01017: invalid username/password; logon denied

最后一步,直接使用alter命令修改你要修改的用户密码即可(下面语法中的红色部分1是需要修改的用户名,红色部分2是改成你的新密码)。

语法为:alter user username identified by newpassword;


SQL> alter user system identified by system;

用户已更改。

SQL> conn system/system
已连接。
SQL>

如果你需要修改的账户是锁定的,比如scott用户,那么只需要在最后一步这里使用如下命令解锁即可:

alter user scott account unlock;

溜了,有时间把自己学习Oracle的笔记贴出来(滥竽充数)。下回见!

标签: Oracle

admin 发布于  2018-4-26 14:17 

一键搭建kms激活服务端&&Windows客户端一键激活脚本 Linux


update:06/10/2019 :
脚本加入开机自启动,完善逻辑,添加两种零售版转vol版本工具。shell是从vlmcsd仓库拉取编译,你安装的时候就是最新的,不要再问了。
shell在centos6/7 ubuntu 16 测试没问题,有问题的留言。
更新提示:
如果一键脚本不能激活的系统,请手动激活。GVLK密钥可以去微软这里查看最新的。

写这个就是因为这个清明小长假帮朋友重做系统...-_-||( ╯□╰ ),是的你没有看错,Jiu是做系统!

感觉学过计算机就是修电脑,做系统,组装台式机,/喷血。做完系统他说,你帮忙把office也装好吧...当然,是去MSDN-I-tell-you下载的VL版本的系统。需要激活,又不想用网上那些奇怪的软件,就只能自己动手了,就有了下面这个脚本。干净,利落!这个脚本可以激活VL版本的Windows系统和office绝大多数版本。无毒无污染,国家认证,Mrxn良心出品!好吧,下面剩下的知道的就不用看了,直接到底部去GitHub下载到你的小鸡鸡开始享用吧。

一定要注意:如果你的小鸡鸡有类似vultr,谷歌云,套路云这些带防火墙的,你需要在防火墙策略里面添加允许放行1688端口的TCP流量,不然你激活会失败的。

kms-server-deploy

一键搭建kms激活服务端和Windows客户端一键激活脚本

再此特别感谢KMS服务器程序的开发者Wind4

vlmcsd Github主页:https://github.com/Wind4/vlmcsd

脚本的使用方法:

在你的服务器上,执行如下命令即可:

wget https://raw.githubusercontent.com/Mr-xn/kms-server-deploy/master/kms-server-deploy.sh && bash kms-server-deploy.sh

不会的,请看下面的我的截图操作就知道了

Linux服务端安装卸载

安装

install_0.pnginstall_1.png

卸载

uninstall.png

Windows上激活

下载(解压缩mrxn_net_kms.cmd 附件下载:mrxn_net_kms.zip

下载后右键-以管理员身份运行

uac_run.png

激活中...

going.png

成功激活

success.png

手动激活教程如下:

以windows 10 专业版(Professional)为例,打开powershell(管理员)直接输入下列命令

slmgr.vbs -upk

slmgr.vbs -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX #注意!!不同系统版本这里的激活码不一样,请往下翻寻找表格!

slmgr.vbs -skms kms.mrxn.net

slmgr.vbs -ato

slmgr.vbs -dlv

注意!不同的系统,这一步中输入的密钥不相同!!!


附表:

各操作系统KMS激活方式所对应的激活码

Windows 10

操作系统版本 KMS客户端设置密钥
Windows 10 专业版 W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 专业N版 MH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 企业版 NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 企业N版 DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 教育(家庭)版 NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 教育(家庭)N版 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 企业版2015 LTSB WNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows 10 企业版 2015 LTSB N 2F77B-TNFGY-69QQF-B8YKP-D69TJ
Windows 10 企业版 2016 LTSB DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 企业版 2016 LTSB N QFFDN-GRT3P-VKWWX-X7T3R-8B639

Windows Server 2012和Windows 8

操作系统版本 KMS客户端设置密钥
Windows 8专业版 NG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 Professional N XCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8企业版 32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8企业N JMNMF-RHW7P-DMY6X-RF3DR-X2BQT
Windows Server 2012 BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Windows Server 2012单一语言 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Windows Server 2012具体国家 4K36P-JN4VD-GDC6V-KDT89-DYFKP
Windows Server 2012服务器标准 XC9B7-NBPP2-83J2H-RHMBY-92BT4
Windows Server 2012 MultiPoint Standard HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint Premium XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Windows Server 2012数据中心 48HP8-DN98B-MYWDG-T2DCC-8W83P

Windows 7和Windows Server 2008 R2

操作系统版本 KMS客户端设置密钥
Windows 7专业版 FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7专业版 MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Professional E W82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows 7企业版 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7企业N YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7企业E C29WB-22CC8-VJ326-GHFJW-H9DH4
Windows Server 2008 R2 Web 6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC版 TT8MH-CG224-D3D7Q-498W2-9QCTX
Windows Server 2008 R2 Standard YC6KT-GKW9T-YTKYR-T4X34,R7VHC
Windows Server 2008 R2企业版 489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2数据中心 74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2(用于基于Itanium的系统) GT63C-RJFQ3-4GMB6-BRFB9-CB83V

Windows Vista和Windows Server 2008

操作系统版本 KMS客户端设置密钥
Windows Vista Business YFKBB-PQJJV-G996G-VWGXY-2V3X8
Windows Vista Business N HMBQG-8H2RH-C77VX-27R82-VMQBT
Windows Vista企业版 VKK3X-68KWM-X2YGT-QR4M6-4BWMV
Windows Vista企业N VTC42-BM838-43QHV-84HX6-XJXKV
Windows Web Server 2008 WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Windows Server 2008 Standard TM24T-X9RMF-VWXK6-X8JC9-BFGM2
没有Hyper-V的Windows Server 2008 Standard W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008企业版 YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
没有Hyper-V的Windows Server 2008 Enterprise 39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPC RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Windows Server 2008数据中心 7M67G-PC374-GR742-YH8V4-TCBY3
没有Hyper-V的Windows Server 2008数据中心 22XQ2-VRXRG-P8D42-K34TD-G3QQC
Windows Server 2008(用于基于Itanium的系统) 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK

Windows Server 2016

操作系统版本 KMS客户端设置密钥
Windows Server 2016数据中心 CB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016标准 WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 Essentials JCKRF-N37P4-C2D82-9YXRT-4M63B

 


手动代码激活OFFICE

首先你的OFFICE必须是VOL版本,否则无法激活。
找到你的office安装目录,比如C:\Program Files (x86)\Microsoft Office\Office16

64位的就是C:\Program Files\Microsoft Office\Office16

office16是office2016,office15就是2013,office14就是2010.

然后目录对的话,该目录下面应该有个OSPP.VBS。

接下来我们就cd到这个目录下面,例如:

cd "C:\Program Files (x86)\Microsoft Office\Office16"

然后执行注册kms服务器地址:

cscript ospp.vbs /sethst:kms.mrxn.net

/sethst参数就是指定kms服务器地址。

一般ospp.vbs可以拖进去cmd窗口,所以也可以这么弄:

cscript "C:\Program Files (x86)\Microsoft Office\Office16\OSPP.VBS" /sethst:kms.mrxn.net

一般来说,“一句命令已经完成了”,但一般office不会马上连接kms服务器进行激活,所以我们额外补充一条手动激活命令:

cscript ospp.vbs /act

如果提示看到successful的字样,那么就是激活成功了,重新打开office就好。

激活失败的原因可能有哪些?

1、你的系统/OFFICE是否是批量VL版本
2、是否以管理员权限运行CMD
3、你的系统/OFFICE是否修改过KEY/未安装GVLK KEY
4、检查你的网络连接
5、本地的解析不对,或网络问题(点击检查服务器是否能连上)
6、根据出错代码自己搜索出错原因
7、0x80070005错误一般是你没用管理员权限运行CMD

GitHub地址:https://github.com/Mr-xn/kms-server-deploy 欢迎start,提issues,Pull!


admin 发布于  2018-4-7 13:09 

主板不识别内存条或识别不全的解决方法 技术文章

最近帮一个做视频剪辑的朋友DIY一台性价比的机器,在亮机测试的时候呢,出现了一个bug:四根内存条有一根不能识别导致显示器没有任何的显示(一般你的电脑如果开机黑屏,但是蜂鸣器又没有报警之类的,可以试试重新拔插内存条),但是交叉测试内存条都是好的。

两根,三根 测试都可以进入BIOS查看到内存大小,单根4G内存

shotpic_2018-04-02_15-53-47.png

shotpic_2018-04-02_15-54-02.png

最终解决了,在此记录一下,方便有缘人。能帮到他人,何乐而不为呢!

shotpic_2018-04-02_15-52-01.png

解决的办法是我从一个搞硬件的老司机哪里问到的,他说,有的主板因为CPU插座的螺丝没有拧紧或者是过紧导致接触不良。啥意思呢,下面看图:

shotpic_2018-04-02_15-50-46.png

如上图所示,红圈就是你需要拧紧或者拧松的地方,我这里检查是指示CPU安装方向(黑色三角形)得那个螺丝,我自己拧了一下比另三个松,然后我把它拧紧了,再测试就好了。(前提是你得有工具,还好我有个工具箱,下图与此无关//XD

shotpic_2018-04-02_15-51-01.png

好吧,搞基 搞机 忘了戴手套就是这个后果,我一大力出奇迹拔下主板供电线就被划了一道口子。。。皮都掉了。。。痛啊!

shotpic_2018-04-02_15-48-51.png

配张图,搞机完毕得光污染。

shotpic_2018-04-02_15-52-14.pngshotpic_2018-04-02_15-53-05.png

还有最近跑路得国人VPS服务商,MineCloud在TG上也是炒得沸沸扬扬得。你们从这里买就不存在啦。15天,随便退款。

shotpic_2018-04-02_15-47-51.png

shotpic_2018-04-02_15-48-25.png

这套两千出头的配置娱乐跑分必要的:

20180402170732.jpg

下次见。


admin 发布于  2018-4-5 13:45 

windows10安装kali子系统&&https: aptMethod::Configuration: could not load seccomp policy: Invalid argument解决办法 Linux

windwos10安装kali Linux子系统,后更新系统若是出现如下错误:

https: aptMethod::Configuration: could not load seccomp policy: Invalid argument

一般是你的源有问题,可以尝试修改你的源,我就是通过修改源治好了这个毛病!(注:以下命令都是在root权限下执行得,你可以通过sudo su 来切换到root权限下)

nano /etc/apt/sources.list 

修改成如下(仅供参考,可以自己测试可用的速度快的,反正国内得总是出错-_-|):

#deb http://http.kali.org/kali kali-rolling main
deb http://ftp.ne.jp/Linux/packages/kali/kali kali-rolling main

然后执行一下命令更新即可:

apt-get update && apt-get dist-upgrade && apt-get install wget -y 

然后可以安装apt install apt-transport-https,然后尝试使用官方源(deb https://http.kali.org/kali kali-rolling main)更新。

执行完上面的步骤后,你可以通过执行 wget 命令,如果返回类似下面得信息,则表示你的wget安装好了!

root@mrxn:/# wget
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

 我这边可以跑到560KB/s左右,如果觉得慢,可以开VPN/代理加速。


出现意思错误是因为我想wget一个东西的时候,提示我命令未找到,然后就安装wget,失败,到切换源,成功安装wget,成功wget我需需要下载得东西,然后呢。。。就有了这篇日经贴!

大致简记一下如何再windows10上安装kali Linux子系统:

参照官方文档:https://docs.microsoft.com/en-us/windows/wsl/install-win10

win+Q 搜索powershell,然后以管理员的方式 打开,执行如下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

官方文档说,执行命令后,根据提示执行重启。但是我的提示是RESTARTNEEED:FALSE 。powershell.png

so,我不需要重启!@_@||记不太清,有可能我之前开启了Linux子系统,wangle !。。。

插一句:开启Linux子系统,在 控制面板—程序和功能—启用或关闭Windows功能—把Linux子系统复选框勾上即可

control.png

linuxs.png

接下来就是去应用商店搜索kali 即可找打,然后安装吧!一百多兆,很快的。接下来就是上面得解决错误。。。


接下来就是安装xfce4,

wget https://raw.githubusercontent.com/Mr-xn/server-bash-script/master/xfce-xrdp.sh

sh xfce-xrdp.sh 

差不多三十几分钟左右就好了(渣渣本,配置好点会更快)。

 01.png02.png03.png

然后用命令 service xrdp start 来启动xrdp,在本地使用远程桌面连接127.0.0.1:3390 即可打开GUI界面了。

start.png

 local.png

用户名和密码就是安装kali时设置的账号密码。

login.png

进去后选择 Use default config 加载默认配置即可。

desktop-default-config.png

然后进入桌面:很简洁

desktop.png

使用 uname -a 可以看到是老版本得kali 并不是最新版得。

last.png

当不需要的时候,可以使用 service xrdp stop 停止XRDP进程即可

stop.png

总结:windows下得Linux子系统,可以用,但是不是很好用。但是对硬件要求比较高,显卡或者内存不高或导致运行很慢。。。当然了,这个年代,SSD必备!

参考文章链接:

https://github.com/meefik/linuxdeploy/issues/869

https://whitedome.com.au/re4son/voodoo-kali/

https://www.rootlinks.net/2018/03/10/windows-10-wsl%E3%81%AEkali-linux%E3%81%AB%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E7%92%B0%E5%A2%83%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

https://docs.microsoft.com/en-us/windows/wsl/install-win10

标签: Kali windows10

admin 发布于  2018-3-19 15:50 

系统中X1-lock进程Xorg占用CPU爆表通过shell脚本解决以及shell一些知识【笔记】 Linux

首先看一下这张CPU的近一周的波动统计图,可以知道从2月28日开始一路飙升,并且后来时不时的自动停止,这个起伏真的是 因吹丝挺啊!(小声嘀咕:QNMLGB!

shotpic_2018-03-04_14-41-03.png

我那两天忙,没时间看,这几天空了上去一看傻眼了。。。CPU爆表啊,.X1-lock占用CPU98% ,在Top命令下 C查看进程一看是Xorg,我擦,难道中马了(一种不祥的预感,事实是的-_-|| >悲伤<):

shotpic_2018-03-02_14-17-56.png

shotpic_2018-03-02_14-18-39.png

我就想起了前段时间折腾nextcloud,装了各种插件,而其中ocdownloader需要aria2c,我就去Google搜索啊,结果我也忘了借鉴了谁的,估计装到了个假的aria2c,于是乎就中马了。。。

shotpic_2018-03-02_15-59-39.png

好吧,删除了aria2c以及nextcloud,终止那个wget 进程 并删掉残留//瞬间清静了。。。但是,我后来发现了,这个木马其实占用的CPU并不高(并不一定 =_= 无奈自己太菜不知道如何确定 )<< 从上图得出的结果。

后来Google搜索啊,询问了大佬以及网友的记录,大致如下:

Xorg这个进程多半是是由 vncserver 产生的,所以由此可以推定因为 VNC 服务导致了 CPU 占用超高。连接 VNC 需要请求 GUI 资源,如果机器配置和网络条件不够好,那么资源占用高是必然的了。如果无法升级硬件配置,那么可以考虑调整 VNC 设置,将所需的 GUI 要求降低,如减少分辨率、颜色位深等。

但是我在自己的服务器上找了半天,都没有找到神马vncserver,于是乎,只能自己先写个脚本监控它(因为这个进程的名字不变,如果进程的名字会改变,稍微修改一下我的脚本也可以使用的),如果一出现就直接FUCK kill它。脚本结果运行截图如下:

shotpic_2018-03-04_15-28-13.png

注:脚本可以写进crontab 定时执行,监控,暂时就这么个暴力解决的办法。脚本地址:https://github.com/Mr-xn/server-bash-script/blob/master/freecpu.sh 

后来找了好久,终于找到方法了。。。卸载所有X11相关的包以及Xorg的包,然后查找系统里面的X11相关路径文件和文件夹,全部删除掉。。。OK了!几个小时都没有再出现 .X1-lock 被杀的记录了。卸载相关参考命令我会给出链接,至于查找嘛,很简单,whereis X11 ,apt-get --purge remove 'x11-*'

root@xxxx:~# whereis X11
X11: /usr/bin/X11 /usr/lib/X11 /etc/X11 /usr/include/X11 /usr/share/X11

root@xxxx:~# rm -rf /usr/bin/X11 /usr/lib/X11 /etc/X11 /usr/include/X11 /usr/share/X11

终止掉 .X1-lock 进程在进行这些删除操作就好了。

root@xxxx:~# find / -name 'xorg'
/usr/share/X11/xkb/rules/xorg
root@xxxx:~# ls -lgth /usr/share/X11/xkb/rules/xorg
lrwxrwxrwx 1 root 4 Jun 6 2014 /usr/share/X11/xkb/rules/xorg -> base

至于这个xorg 的内容我贴在这里了,你们有看的,可以去查看:https://pastebin.com/WCxn3Bux

删完后 你继续查找 如果像下面这个就表示删干净了。

root@xxxx:~# whereis xorg
xorg:
root@xxxx:~# whereis X11
X11:
root@xxxx:~# 

 相关参考链接:

https://www.howtoinstall.co/en/debian/jessie/x11-common?action=remove

http://www.pc-freak.net/blog/debian-linux-remove-xorg-gnome-gdm-graphical-environment-packages-serverr/

https://www.wikihow.com/Configure-X11-in-Linux

https://raspberrypi.stackexchange.com/questions/5258/how-can-i-remove-the-gui-from-raspbian-debian (这个里面比较详细)

下面是写shell 的一些笔记,生人勿看。

linux shell中 if else以及大于、小于、等于逻辑表达式介绍:

比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。

注意:这里的空格很重要。要确保方括号的空格。我就曾因为空格缺少或位置不对,而浪费好多宝贵的时间。

if ....; then
....
elif ....; then
....
else
....
fi


[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等
-r file     用户可读为真
-w file     用户可写为真
-x file     用户可执行为真
-f file     文件为正规文件为真
-d file     文件为目录为真
-c file     文件为字符特殊文件为真
-b file     文件为块特殊文件为真
-s file     文件大小非0时为真
-t file     当文件描述符(默认为1)指定的设备为终端时为真

含条件选择的shell脚本 对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。
基本的if条件命令选项有:

eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在 


几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。

 

shell 的 if 条件判断中有多个条件:

-------------------------------------------------------
#!/bin/bash
score=$1
if [ $score = 5 ]||[ $score = 3 ];then
    echo right
else
    echo wrong
fi
 
-------------------------------------------------------
#!/bin/bash
score=$1
if [ $score -gt 5 ]||[ $score -lt 3 ];then
    echo right
else
    echo wrong
fi
 
-------------------------------------------------------
#!/bin/bash
score=$1
if [ $score -gt 15 ]||([ $score -lt 8 ]&&[ $score -ne 5 ]);then
    echo right
else
    echo wrong
fi
 
-------------------------------------------------------
或:

#!/bin/bash

count="$1"

if [ $count -gt 15 -o $count -lt 5 ];then

   echo right

fi
 
且:

#!/bin/bash

count="$1"

if [ $count -gt 5 -a $count -lt 15 ];then

   echo right

fi
-------------------------------------------------------
score=$1
if [[ $score -gt 15 || $score -lt 8 && $score -ne 5 ]];then
    echo right
else
    echo wrong
fi

记住必须加两个中括号!!!
 

linux shell脚本 截取字符串时执行错误:bad substitution :

 
比如脚本cutstr.sh的作用时截取www:
 
#/bin/bash
mm="www.baidu.com"
echo ${mm:0:3}
 
执行脚本方式不同出现的结果不同:

方式1、sh cutstr.sh

结果:Bad substitution

方式2、bash cutstr.sh

结果:www

方式3、

chmod 777 cutstr.sh

./cutstr.sh

结果:www

结论:

在执行脚本时要注意的是执行环境的shell,Ubuntu 中执行最好使用上面的方式二或者方式三,注意使用方式一时有时会报错。
 
下面这个脚本执行就会出错:Bad substitution
<span style="color:#FF0000;"><strong>#!/bin/sh</strong></span>

test=asdfghjkl
echo ${test:1}
 
修改#!/bin/sh 为 #!/bin/bash 即可!至于这两者的区别,自行搜索查看有详细的官方讲解。
 
参考链接:
 

admin 发布于  2018-3-4 14:30 

分分钟干死你的WordPress网站或者任意网站 渗透测试

今天到处逛博客看到一个新(旧)闻:WordPress4.9.2(含)以前的网站含有DoS漏洞,可以用一台电脑轻松down掉网站。来源链接; CVEPoC (这个POC只适合python2.7+,python3,并不适合,我作了修改使其能在python3上执行,地址:https://github.com/Mr-xn/CVE-2018-6389/blob/master/Py3-CVE-2018-6389.py

我仅仅测试了一下我的友链里面的使用了wordpress的大哥,而且正好他的版本是符合的(echo "再此先向phpthinking大哥道歉!-_-| " > 偷笑.jpg):

shotpic_2018-03-02_16-51-50.png

首先看一下我们一开始打开的时间(大概3秒左右):

shotpic_2018-03-02_17-28-11.png

运行5分钟后出现500错误:

shotpic_2018-03-02_16-45-14.png

再次刷新打开网站需要2分钟左右,我停止了。。。测试到就行。

shotpic_2018-03-02_16-49-11.png

测试的时候你的CPU和网络会占用很多的。。。小心把自己测试死机了!

shotpic_2018-03-02_17-30-03.png

另外附上这个,一条命令(VPS上执行)即可放到没有防护措施的网站。。。2333 玩一下就好了!开心就好!

for i in `seq 1 1 10000`; do wget -q -O /dev/null 'http://www.example.com' & done

结束!

此次的漏洞具有利用价值,但是在最新版本的WordPress上面已经不起作用。如果站长看到了这篇文章,强烈建议更新到最新版本。

同时,虽然这次的攻击CloudFlare不能提供有效防护,为了避免未来的DoS和其他攻击方式,还是建议开启CDN进行源站IP的匿名化处理,还有针对其他普通DoS的防护。

参考链接以及漏洞的详细介绍看这里:https://mark1998.com/cve-2018-6389/

最好这个循环大量获取网站内容导致PHP倒下的链接:链接太长直接点我吧!

标签: DDOS

admin 发布于  2018-3-2 17:00 

lnmp1.4配置nextcloud13完整教程 技术文章

首先下载nextcloud得最新压缩包,然后解压。

 在nextcloud官网得页面下载最新的服务端安装包,我这里目前是13.0的,然后解压:

wget -c https://download.nextcloud.com/server/releases/nextcloud-13.0.0.zip

unzip -q nextcloud-13.0.0.zip

然后使用lnmp vhost add 添加网站,此处省略,请自行去lnmp.org查看教程。

网站添加完成后,我们需要修改你网站的nginx配置文件,使其适应nextcloud的url重写规则:

vi /usr/local/nginx/conf/vhost/demo.mrxn.net.conf

注意:红色的部分是你自己的域名。

将其中的 

include enable-php.conf; 修改成 include enable-php-pathinfo.conf; 然后重启nginx,lnmp nginx restart .

这时访问你的域名,即可开始配置nextcloud,设置登录账号,密码,数据库 用户名,数据库名,密码,数据库地址(端口),即可完成。(因为这些网上都有很详细的教程,此处省略)。

配置完后出现的一些问题的解决:

添加 fileinfo 扩展:

1、安装前建议先执行 /usr/local/php/bin/php -m (此命令显示目前已经安装好的PHP模块)看一下,要安装的模块是否已安装。

2、首先进入php安装目录的ext目录,找到并进入要安装扩展的文件夹,我们要安装fileinfo扩展,找到并进入fileinfo文件夹。

例如:/root/lnmp1.4/src/php-7.1.7/ext/fileinfo

3、再执行 /usr/local/php/bin/phpize 会返回如下类似信息:

Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303

然后再执行以下命令来配置,编译安装fileinfo扩展:

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

执行完后返回如下信息:

Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

表示编译安装成功,我们只需要修改 /usr/local/php/etc/php.ini 配置文件加入: extension=fileinfo.so ,然后执行 lnmp php-fpm restart 重启 php-fpm服务就完成了fileinfo扩展的安装。

关于php /dev/urandom :

/dev/urandom is not readable by PHP which is highly discouraged for security reasons.

那是因为lnmp默认在每个网站目录加了一个.user.ini文件,防止跨目录,且为只读文件,里面就是写得open_basedir,根据nextcloud官方文档,只要我们添加了/dev/urandom到open_basedir就可以了。

我们首先使用一下命令解锁文件权限,在写入进去就行:

chattr -i /path/to/yoursite/.user.ini #解锁文件

open_basedir=/path/to/yoursite:/tmp/:/proc/:/dev/urandom

其中红色得部分就是我们添加得内容。

修改完后记得改回去,加上锁:

chattr +i /path/to/yoursite/.user.ini

PS:简单说一下这个命令,就当做笔记了

chattr命令:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

其中添加那个参考了这个链接:

https://support.plesk.com/hc/en-us/articles/213368009-How-to-set-up-php-custom-php-settings-for-the-domain

 Background jobs 推荐使用系统的crontab 来增加一个:

crontab -u www -e 进行编辑增加

*/15 * * * * php -f /path/to/yoursite/cron.php 即可

其他:

如果你查看左边的日志发现了很多的 类似 scandir() has been disabled for security reasons at ...... 的提示,那么,你需要修改你的php.ini配置文件。

vi /usr/local/php/etc/php.ini

将disable_functions后面的scandir去掉,保存后,重新启动php-fpm,lnmp php-fpm restart

如果开启了zend的Opcache插件,那么需要修改一下其相关配置,使其性能最优(官方说的)。最好是使用phpinfo来查看的Opcache配置文件位置,lnmp的扩展配置文件一般是在 /usr/local/php/conf.d/ 目录。

以下是我的Opcache配置,供参考:

[Zend Opcache]
zend_extension="opcache.so"
opcache.enable=1
opcache.save_comments=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.fast_shutdown=1
opcache.enable_cli=1

PS:
开启APCU,Redis,Opcache,imageMagick等优化插件:
直接在lnmp1.4的源码目录里面执行 ./addons.sh 选择你需要的即可添加。

下面是nginx的主要配置,仅供参考!切忌无脑照抄!

ssl_buffer_size 1400;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }

include none.conf;
#error_page 404 /404.html;

# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

include enable-php-pathinfo.conf;

#这儿是为了支持日历和联系人,建议加上
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
#设置上传文件的最大大小(还和php里的那个设置有关)
client_max_body_size 512M;
fastcgi_buffers 64 4K;
#最主要的,将所有请求转发到index.php上
location / {
rewrite ^ /index.php$uri;
}
#安全设置,禁止访问部分敏感内容
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
include fastcgi.conf;
}

#安全设置,禁止访问部分敏感内容
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}

location ~ \.(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 12h;
}

location ~ /.well-known {
allow all;
}

location ~ /\.
{
deny all;
}

location ~ /\.ht {
deny all;
}
access_log off;

就到这里了,有啥问题,评论,以后有时间再更新(先挖个坑)。

标签: nextcloud

admin 发布于  2018-2-16 21:29