转到正文

存档

分类: 技术源码

写在前面:
Atlassian公司的我测试的软件除了使用OVF直接导入虚拟机的,其余基本都可以使用如下方法安装。
操作系统:CentOS8_1905,默认最小化安装联通外网,并安装Net-tools工具
数据库:MariaDB,关于MariaDB 和 MySQL的渊源大家请自行Google

一、安装最新的 MariaDB 10.3.18

先说结果,在这个地方失败了很多回,后来终于搞明白问题了,如果按官方说明,写个MariaDB.repo就搞定了。。。这是个坑!最新的CentOS8_1905版本,使用dnf来替换yum, 不管你写多少个REPO,如果默认软件仓库里有这个软件,那么肯定是从默认软件仓库里找,这个也好理解,稳定性支持吗,毕竟在REDHAT企业版8出来5个月以后,CentOS8_1905版本才和我们见面。所以我们首先要知道系统默认的软件仓库名称是什么,把它屏蔽了就可以用dnf安装最新的MariaDB了。
dnf repolist --all //查询REPO列表

我们在这里主要屏蔽的是仓库标识为 AppStream 的主软件仓库。当然,前提是按MariaDB官方说明,建立MariaDB.repo,但是官方的BaseURL是在国外,我们需要修改一下URL地址为国内的镜像

# /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos8-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

安装MariaDB
# dnf install MariaDB-server MariaDB-client --disablerepo=AppStream //禁用仓库标识为 AppStream 的主软件仓库

# 设置自动启动
systemctl enable mariadb
# 启动 MariaDB 数据库
systemctl start mariadb

# 确认3306端口是否启用,服务是否正常
netstat -nlp

# 为调试方便禁用防火墙(不安全)
systemctl stop firewalld
systemctl disable firewalld

# 初始化MariaDb
mysql_secure_installation //用来设置数据库密码和简单的安全选项

继续阅读

最近在搞这个,众所周知的原因,内部使用的话,还是推荐 Atlassian 公司的 Hipchat Server

Hipchat Server 的好处显而易见,就是可以绕过公用的服务器,现在各国越来越严格的监管措施,可能也会对这个软件的未来产生很大影响,不过目前还是支持Server软件下载,只不过地址隐藏起来了。目前我们能下载到的地址是:
https://hipchat-server-stable.s3.amazonaws.com/HipChat.ova
版本是 Atlassian HipChat 2.4.5 (2019.06.24.115346)

OVA软件包下载后我们把它导入虚拟机里即可。需要注意的地方是,在导入OVF模板的时候,选择网络里会让你选择IP分配,默认是DHCP,这个地方就保留DHCP,否则会报
无法初始化属性“vami.DNS0.HipChat_Server_2.0”。网络 “*”不具有关联的网络协议配置文件的错误。

部署完成后启动Hipchat服务器,在服务器界面中使用默认用户名 admin 密码 hipchat 登陆服务器后用如下命令修改网络配置
hipchat network -m static -i IPADDR -s NETMASK -g GATEWAY -r DNS_Address

设置好网络,并确定网络可正常使用的前提下,需重置hipchat服务器ubantu的root密码,这个网上有很多介绍,我就不在这里过多提了,如果确实你无法重置密码,可以发邮件给我(xu1701@hotmail.com)探讨。

修改完Root密码后,我们进入系统,要做一些简单的安全,首先我们要修改默认用户admin的密码
passwd admin
其次,我们需要修改SSH登陆的安全选项
vi /etc/ssh/sshd_config
vi /hipchat-scm/chef-repo/cookbooks/openssh/templates/default/sshd_config.erb
确认
PermitRootLogin 为 No
确保用admin登陆后,只能su成root权限,而不能用root用户直接登陆。重启服务器后,我们就可以用WEB浏览器来安装Hipchat了。

继续阅读

In [1]: my_string = """This is my first line,
   ...: this is my second line, and...
   ...: 
   ...: ...this is my fourth line!"""

In [2]: my_string.splitlines()[0]
Out[2]: 'This is my first line,'

In [3]: my_string.split('\n', 1)[0]
Out[3]: 'This is my first line,'

一直在测试 RHEL8,总的来说,还是比较符合预期的,就是非注册版本,诸多限制,等 Centos8 出来后,要在内网部署,做小程序测试,等到现在,快没耐心了 :(

一直登陆centos.org网站,麻烦,写个python3脚本跑吧,每天对比一下版本号。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Filename:centosversion.py

import requests
import re
import operator
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}

page = requests.get('https://www.centos.org', headers)

html = page.content

soup = BeautifulSoup(html, 'html.parser')
for k in soup.find_all(href=re.compile("https://wiki.centos.org/Manuals/ReleaseNotes/"), limit=1):
        data = k['href']
        if operator.eq(data[-1], 8):
                print("OK")
        else:
                print("FALSE")

修改mongodb.conf,增加一行配置

bindIp: 0.0.0.0 //绑定ip地址

个人建议绑定地址不要写0.0.0.0,要写真实的IP地址,减少服务器攻击。

修改后重启即可远程连接,当然,防火墙一定要开放27017端口。

今天看到一个有趣的脚本,放在这里分享一下

转子:https://www.jb51.net/article/130973.htm

#!/bin/bash
# Filename:Record.sh

read -p "Please input the sesson filename you want to creat: " filename; 

sesfile="$filename.session"
logfile="$filename.timing.log"

if [ -e $sesfile ];then
  echo "$sesfile is Exsit,Creat session file fault!"; 
  read -p "If you want to reload the file? [Y/N]: " flag; 
  if [ "$flag" = "Y" ];then
    rm $sesfile $logfile; 
    script -t 2> $logfile -a $sesfile; 
  else
    echo "Nothing to do!"; 
  fi

else
  script -t 2> $logfile -a $sesfile; 
fi
#!/bin/bash
# Filename:Replay.sh

read -p "Please input the session filename: " filename 
logfile="$filename.timing.log"
sesfile="$filename.session"
if [ -e $sesfile ]; then
  scriptreplay $logfile $sesfile 
  echo
else
  echo "$filename is NOT Exsit!"
fi

再补一个TermRecord方法,TermRecord是python编写的脚本,所以,linux环境里必须有python及web环境

pip install TermRecord
TermRecord -o /path/filename_html
停止录制,键入 exit

在web浏览器中打开filename_html就可以看到输出结果
做了个例子,大家可以看看
http://techlife.com.cn/190812.html

今天写了个查whois信息的小程序,在python3命令行测试,是正常的,但一用到print命令,就输出乱码,网上找了一些文章,还是觉得这篇写的最准确,共享出来

https://www.cnblogs.com/gjq168/p/9262559.html

说说这个程序,用到的是python-whois 0.7.1模块,之前查询whois信息,总是需要去网站输入,比较麻烦,现在用python3,方便多了,代码公开一下,名字是testwhois.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import whois
import sys

w = whois.whois(sys.argv[1])
data = w.text.encode("utf-8").decode("utf-8")
print(data)

使用方法:
./testwhois.py www.163.com

Python 3.6.9 - July 2, 2019 新放出的安全补丁版本,正好整了一台RHEL8,装上测试一下

首先因为pip3安装模块需要使用SSL,否则会报SSL连接错误,所以需要先安装openssl-devel

yum -y install openssl-devel

然后安装 Python 3.6.9

3.6.9版本
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
make;make install

3.8版本
./configure --prefix=/usr/local/python3 --enable-shared --enable-optimizations --with-libs='/usr/lib64/libcrypto.so /usr/lib64/libssl.so' --with-ssl-default-suites=openssl  --disable-ipv6

cd /usr/bin/
ln -s /usr/local/python3/bin/python3
ln -s /usr/local/python3/bin/pip3

Looking in links: /tmp/tmp6u244lwp
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-18.1 setuptools-40.6.2

结束安装时会自动安装setuptools 以及 pip

附(引用,原文在https://blog.csdn.net/iodjSVf8U1J7KYc/article/details/85241988 ):

从 RHEL 8 Beta 开始不再强调“系统 Python”,不再默认一个 Python 版本。他们使用模块化的 Application Streams 设计,结合 Python 可多版本同时安装的特点,将为用户提供多个版本 Python 的选项,并且可以从标准存储库轻松安装到标准位置,用户可以选择他们想要在任何给定用户空间中运行的 Python 版本。

Application Streams 是在 RHEL 8 中引入的一类存储库,它提供用户可能希望在给定用户空间中运行的所有应用程序,它是在物理存储库中创建的多个虚拟存储库。

这种变化之后,用户想要使用 Python,需要直接指定 Python3 或者 Python2,而不是直接 Python。同时 yum install python 将返回 404,因为它同样需要指定安装版本。建议使用 yum install @python36 或 yum install @python27 安装推荐软件包,而如果只需要 Python 二进制文件,则可以使用 yum install python3 或 yum install python2。此外,pip 等工具也有变化,比如 Python3 将安装在 pip3 路径下,而不是没有版本指定的 pip 路径。

Red Hat 解释,除了提升用户体验,这种方案还让方便了系统维护人员,因为不会被锁定在系统中老版本的 Python 上,那么他们可以自由地利用新版本的语言功能与性能改进等优势。

一、安装
# yum install bind-utils -y

二、使用

(1)指定某DNS查询一个域名。以www.people.cn为例。

dig www.people.cn @dns address

(2)查询A记录

dig www.people.cn A +noall +answer @dns address

(3)查询权威DNS

dig www.people.cn NS +noall +answer @dns address

后面有其他继续增加

现象:Pureftpd+Mysql中的status参数设置为0表示账户不启用,1表示正常使用,重新安装了Pureftpd+Mysql后这个参数不起作用了

解决:pureftpd-mysql.conf 中有关于 Pureftpd 调用 Mysql 中各参数的简单例子,修改这里即可,下面是我的文件中的,大家按照自己的数据库列名字修改即可,把默认的注释掉,默认的是没有status以及ipaccess参数的


#ADD
MYSQLGetPW SELECT Password FROM users WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID SELECT Uid FROM users WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID SELECT Gid FROM users WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir SELECT Dir FROM users WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE"\R")
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L" AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L" AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L" AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L" AND status="1" AND (ipaccess ="*" OR ipaccess LIKE "\R")