Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

Posted in Uncategorized | 1 Comment

官方GITHUB上面有密码重置的方法:https://github.com/janeczku/calibre-web/wiki/Command-Line-Interface#command-line-options

但是我按照步骤操作时,密码更改没生效

python3 cps.py s admin:password

后来去github搜了下issue,发现是新版本需要指定数据库的位置,因为把命令行改为如下之后,成功了,也就是加上-p指定db的位置

python3 cps.py p /config/app.db s admin:password

 

Posted on by fencatn | Leave a comment

我的系统是centos7.6,安装php8.3时,先直接yum remove php* 移除原有的php组件,然后按照以下攻略安装当前最新的php8.3版本

https://medium.com/@nothanjack/mastering-the-installation-of-php-8-3-on-centos-7-easy-steps-1118ed651522

我把php8.3所需的扩展组件汇总,你可以直接yum install -y,当然你得先把仓库安装好

sudo yum install epel-release

sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

然后 yun install以下

php83 php-bcmath php83-php-bcmath php83-php-cli php83-php-common php83-php-devel php83-php-fpm php83-php-gd php83-php-gmp php83-php-intl php83-php-mbstring php83-php-mysqlnd php83-php-opcache php83-php-pdo php83-php-pdo-dblib php83-php-pecl-apcu php83-php-pecl-apcu-devel php83-php-pecl-igbinary php83-php-pecl-imagick-im6 php83-php-pecl-msgpack php83-php-pecl-redis6 php83-php-pecl-zip php83-php-process php83-php-sodium php83-php-xml

Posted on by fencatn | Leave a comment

使用环境 centos 8 LNMP wordpress

先说结论:系统重启后没有关闭selinux

因为维护主机,所以重启了一下虚拟机,结果wp就没法正常访问了,一直提示数据库连接异常。在排查了数据库和nginx无果之后,想到了去系统的message查下报错信息。果然发现了端倪

Mar 7 19:45:14 host setroubleshoot[2219]: SELinux is preventing php-fpm from name_connect access on the tcp_socket port 3306.#012#012***** Plugin catchall_boolean (47.5 confidence) suggests ******************#012#012If you want to allow httpd to can network connect#012Then you must tell SELinux about this by enabling the 'httpd_can_network_connect' boolean.#012#012Do#012setsebool -P httpd_can_network_connect 1#012#012***** Plugin catchall_boolean (47.5 confidence) suggests ******************#012#012If you want to allow httpd to can network connect db#012Then you must tell SELinux about this by enabling the 'httpd_can_network_connect_db' boolean.#012#012Do#012setsebool -P httpd_can_network_connect_db 1#012#012***** Plugin catchall (6.38 confidence) suggests **************************#012#012If you believe that php-fpm should be allowed name_connect access on the port 3306 tcp_socket by default.#012Then you should report this as a bug.#012You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm#012# semodule -X 300 -i my-phpfpm.pp#012

这就很明显提示selinux阻止了php-fpm建立的mysql连接。关闭selinux之后一切正常。

Posted on by fencatn | Leave a comment

转载自https://note.qidong.name/2020/05/docker-proxy/

有时因为网络原因,比如公司NAT,或其它啥的,需要使用代理。 Docker的代理配置,略显复杂,因为有三种场景。 但基本原理都是一致的,都是利用Linux的http_proxy等环境变量。

dockerd代理

在执行docker pull时,是由守护进程dockerd来执行。 因此,代理需要配在dockerd的环境中。 而这个环境,则是受systemd所管控,因此实际是systemd的配置。

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf

在这个proxy.conf文件(可以是任意*.conf的形式)中,添加以下内容:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

其中,proxy.example.com:8080要换成可用的免密代理。 通常使用cntlm在本机自建免密代理,去对接公司的代理。 可参考《Linux下安装配置Cntlm代理》。

Container代理

在容器运行阶段,如果需要代理上网,则需要配置~/.docker/config.json。 以下配置,只在Docker 17.07及以上版本生效。

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://proxy.example.com:8080",
     "httpsProxy": "http://proxy.example.com:8080",
     "noProxy": "localhost,127.0.0.1,.example.com"
   }
 }
}

这个是用户级的配置,除了proxiesdocker login等相关信息也会在其中。 而且还可以配置信息展示的格式、插件参数等。

此外,容器的网络代理,也可以直接在其运行时通过-e注入http_proxy等环境变量。 这两种方法分别适合不同场景。 config.json非常方便,默认在所有配置修改后启动的容器生效,适合个人开发环境。 在CI/CD的自动构建环境、或者实际上线运行的环境中,这种方法就不太合适,用-e注入这种显式配置会更好,减轻对构建、部署环境的依赖。 当然,在这些环境中,最好用良好的设计避免配置代理上网。

docker build代理

虽然docker build的本质,也是启动一个容器,但是环境会略有不同,用户级配置无效。 在构建时,需要注入http_proxy等参数。

docker build . \
    --build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \
    --build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \
    --build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \
    -t your/image:tag

注意:无论是docker run还是docker build,默认是网络隔绝的。 如果代理使用的是localhost:3128这类,则会无效。 这类仅限本地的代理,必须加上--network host才能正常使用。 而一般则需要配置代理的外部IP,而且代理本身要开启gateway模式。

重启生效

代理配置完成后,reboot重启当然可以生效,但不重启也行。

docker build代理是在执行前设置的,所以修改后,下次执行立即生效。 Container代理的修改也是立即生效的,但是只针对以后启动的Container,对已经启动的Container无效。

dockerd代理的修改比较特殊,它实际上是改systemd的配置,因此需要重载systemd并重启dockerd才能生效。

sudo systemctl daemon-reload
sudo systemctl restart docker

参考

Posted on by fencatn | Leave a comment

转载自https://www.unixso.com/NetWork/netstat.html

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
常见参数

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
状态列表:

LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态

常用使用方法:

并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

显示当前所有活动的网络连接:
netstat -na

列出所有端口 (包括监听和未监听的)
netstat -a

只显示监听端口 netstat -l
netstat -l

只列出所有监听 tcp 端口 netstat -lt
netstat -lt

只列出所有监听 udp 端口 netstat -lu
netstat -lu

只列出所有监听 UNIX 端口 netstat -lx
netstat -lx

显示所有端口的统计信息 netstat -s
netstat -s

显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su
netstat -st 
netstat -su

在 netstat 输出中显示 PID 和进程名称 netstat -p
netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。
netstat -pt

显示系统不支持的地址族 (Address Families)
netstat --verbose

显示核心路由信息 netstat -r
netstat -r

显示网络接口列表
netstat -i

显示出所有处于监听状态的应用程序及进程号和端口号:
netstat -aultnp

如果想对一个单一的进行查询,只需要在命令后面再加上“| grep $”。这里就用到了管道符,以及grep筛选命令,$代表参数,也就是你要查询的那个。
如要显示所有80端口的网络连接:
netstat -aultnp | grep 80

如果还想对返回的连接列表进行排序,这就要用到sort命令了,命令如下:
netstat -aultnp | grep :80 | sort

当然,如果还想进行统计的话,就可以再往后面加wc命令。如:
netstat -aultnp | grep :80 | wc -l

其实,要想监测出系统连接是否安全,要进行多状态的查询,以及要分析,总结,还有就是经验。总的下来,才可以判断出连接是否处于安全状态。
netstat -n -p|grep SYN_REC | wc -l

这个命令可以查找出当前服务器有多少个活动的 SYNC_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。
netstat -n -p | grep SYN_REC | sort -u

先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c

列出所有连接过的IP地址。
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

列出所有发送SYN_REC连接节点的IP地址。
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

使用netstat命令计算每个主机连接到本机的连接数。
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

列出所有连接到本机的UDP或者TCP连接的IP数量。
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
Posted on by fencatn | Leave a comment

检测sshd异常登录的脚本,防止暴力破解:

#!/bin/bash
#This is a host.deny Shell Script
#2013-08-24
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2 "=" $1;}' > /tmp/black_ip.txt
DEFINE=10
for i in `cat /tmp/black_ip.txt`
do
IP=`echo $i | awk -F= '{print $1}'`
NUM=`echo $i | awk -F= '{print $2}'`
if [ $NUM -gt $DEFINE ]
then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ]
then
echo "sshd:$IP" >> /etc/hosts.deny
fi
fi
done

Posted on by fencatn | Leave a comment

今天发现了一个可以更换群晖登录界面壁纸的脚本,拉取的是Bing的图片,代码在下面这个链接:

https://github.com/kkkgo/DSM_Login_BingWallpaper

把它添加到群晖定时任务里边就行了。

Posted on by fencatn | Leave a comment

clickhouse统计数据库大小

注意最后以后右边是两个分号

 

select
sum(rows) as "总行数",
formatReadableSize(sum(data_uncompressed_bytes)) as "原始大小",
formatReadableSize(sum(data_compressed_bytes)) as "压缩大小",
round(sum(data_compressed_bytes) / sum(data_uncompressed_bytes) * 100, 0) "压缩率"
from system.parts;;
Posted in clickhouse | Tagged | Leave a comment

centos清除磁盘标签

我之前有几块硬盘用作freenas的zfs分区,现在不用了,想换到centos主机上面用,那就得格式化,但是当我按常规fdisk分区,mkfs格式化,mount挂载分区,遇到这个问题:

[root@server3 samba]# mount /dev/sdb1 /var/nextcloud_bak1
mount: /dev/sdb1:检测到更多文件系统。这不应该出现,
请使用 -t <类型> 指明文件系统类型或
使用 wipefs(8) 清理该设备。

 

也就是说原先zfs格式的磁盘标签没有清理,当然,不影响使用,但是你挂载就得指磁盘分区,不是那么完美,然后blkid也查不到uuid,所以还是要清理干净

[root@server3 samba]# wipefs /dev/sdb1
offset type
----------------------------------------------------------------
0xe8e0c3e000 zfs_member [filesystem]

0x438 ext4 [filesystem]
UUID: b66153c7-dda6-496e-a9bc-04cd7e81a2bf

 

可以看到,我的ext4格式已经出来了,但是原先的zfs也还在

 

[root@server3 samba]# wipefs -a /dev/sdb
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d3e000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d3d000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d3c000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d3b000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d3a000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d39000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d38000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d37000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d36000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d35000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d34000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d33000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d7f000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d7e000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d7d000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d7c000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d7b000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d7a000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d79000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d78000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d77000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d76000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d75000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d74000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d73000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d72000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d71000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0d70000 (zfs_member):0c b1 ba 00 00 00 00 00
/dev/sdb:8 个字节已擦除,位置偏移为 0x00000200 (gpt):45 46 49 20 50 41 52 54
/dev/sdb:8 个字节已擦除,位置偏移为 0xe8e0db5e00 (gpt):45 46 49 20 50 41 52 54
/dev/sdb:2 个字节已擦除,位置偏移为 0x000001fe (PMBR):55 aa
/dev/sdb: calling ioclt to re-read partition table: 成功

 

直接执行-a就行了,但是得注意,所有的内容都会擦除,并且得重新分区和格式化!

Posted in 通用 | Tagged , , | Leave a comment