使用certbot自动申请ssl证书
certbot可以自动申请let’s encrypt https证书, 并且可以自动续期,另见:使用acme.sh来自动更新https证书
申请证书前准备添加DNS解析域名为你需要申请https证书的域名,添加A记录到服务器IP
安装certbot和certbot nginx plugin12sudo apt install certbotsudo apt install python3-certbot-nginx
申请证书1sudo certbot --non-interactive --redirect --agree-tos --nginx -d password.zahui.fan -m captain@zahui.fan
以上操作除了申请证书外,还可以自动添加https配置到nginx,很方便。
证书续期1sudo certbot renew
添加到root用户的crontab里面就可以实现自动续期,距离到期时间太长会自动跳过续期
删除证书1sudo certbot delete
Systemd入门教程all in One
参考自https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html,感谢阮一峰老哥。同样可以看Arch Wiki:systemd ,Arch Wiki真的不错。
由来历史上,Linux 的启动一直采用init进程。
下面的命令用来启动服务。
123sudo /etc/init.d/apache2 start# 或者service apache2 start
这种方法有两个缺点。
一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。
systemd的诞生Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。systemd成为系统的第一个进程(也就是PID=1),其他进程都是它的子进程。
systemd 包括的命令
systemd 不是一个命令,而是一组命令。比如systemctl hostnamec ...
Nginx反向代理wordpress并启用https
反向代理wordpress遇到了问题,nginx不启用https,反向代理没问题(wordpress和nginx之间走http),但是nginx启用了https,页面上的样式就没有了,f12查看,发现js和css走的还是http,所以404
根本原因:wordpress代码里没有开启https,(wordpress认为自己是被http访问的,毕竟nginx是通过http来访问它的)
修改wordpress配置
感觉这种方案最靠谱,谁的债谁来还。。
在wp-config.php的if ( ! defined( ‘ABSPATH’ ) )前面添加:
123$_SERVER['HTTPS'] = 'on';define('FORCE_SSL_LOGIN', true);define('FORCE_SSL_ADMIN', true);
如果是官方Docker容器的话强烈建议Nginx的location /里面添加一个头:
1proxy_set_header X-Forwarded-Proto $s ...
openSUSE常用配置
安装vscode12345sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascsudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/vscode.repo'sudo zypper refreshsudo zypper install code
安装vmware workstation1sudo zypper install gcc gcc-c++ kernel-source kernel-syms
然后正常安装vmware-workstation
关闭休眠,虚拟机建议操 ...
通过inode删除文件
有时候会有一些文件名是乱码的文件无法删除,这时候可以通过inode来删除。
获取文件的inode1ls -ali
第一列就是文件的inode
通过inode删除1find -inum 527084 -exec rm -rf {} \;
Bash中双横线的作用
看个例子:
假设有个文件叫-f, 我想把这个文件删除假设我要用rm -f -f来删除,会发现无法删除,bash把第二个-f当作参数了
这个时候可以使用--(当然有其他方法,这里先不讨论)
1rm -f -- -f
这里的-- 表示这个程序的参数已经结束了,后面所有的内容都是参数的值了,比如第二个 -f 就不会认为它是rm的参数了
现在使用kubectl exec 也会推荐你用 – 后面再接上命令
Unix口令生成与使用
这个密码有什么用:/etc/shadow linux用户密码就是通过这种方法hash的http basic auth的密码也是通过这种方式生成的
通过openssl生成执行
1234567891011# ubuntuopenssl passwd -6 123456参数的含义: -6 SHA512-based password algorithm -5 SHA256-based password algorithm -apr1 MD5-based password algorithm, Apache variant -1 MD5-based password algorithm# centosopenssl passwd -1 123456
就能生成一串字符串,其中参数6是最长的,1是最短的,后面123456是要加密的密码仔细观察会发现每次生成的密码都是不同的,那是因为每次执行openssl会随机生成一个salt值,可以有效防止字典反推 ...
Shell数学运算
bash 自带的数学运算
不依赖其他包,只要你的shell是bash
1234echo $(( 1 + 1 ))echo $(( 1 - 3 ))echo $(( 10 * 3 ))echo $(( 10 / 3 ))
expr
expr 可以当计算器用不过它主要还是个计数器
字符串操作12345678# 计算字符串长度expr length "hello world"# 抓取字符串,3表示从第3个字符开始,5表示抓取的字符串长度expr substr "hello world" 3 5# 抓取第一个字符串出现的位置expr index "hello world" o
四则运算1234expr 10 % 3expr 10 + 10expr 30 / 3 / 2expr 30 \* 3 # 使用乘号时,必须用反斜线屏蔽其特定含义。
bc
bc 是一个命令行的计算器工具,有些过于精简的发行版没有自带。
支持浮点数四则运算
123456789101112131415161718echo "1. ...
Centos7升级到RHEL8
本文依照redhat官方文档制作,总共分为两步,先将centos7转换为rhel7,然后再将rhel7升级为rhel8
参考文档:cenots7转换为rhel7rhel7升级为rhel8
centos7升级为rhel7升级到centos7最新版1yum update -y && reboot
安装convert2rhel1234567curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txtcurl -o /etc/yum.repos.d/convert2rhel.repo https://ftp.redhat.com/redhat/convert2rhel/7/convert2rhel.repoyum install -y convert2rhel
开始转换12convert2rhel --username <替换为你的用户名> --password <替换为你的密码>不加--pool 会提示手 ...
内核级负载均衡 LVS DR模式 部署记录
DR模式,Director和realserver都在一个内网里面,他们都绑定上同一个VIP, 原理是通过Director Server 修改数据包的MAC地址, 所以得让realserver不响应arp,不然肯定会造成内网IP冲突
规划:
机器
IP
VIP
10.0.0.8
director
10.0.0.41
realserver1
10.0.0.42
realserver2
10.0.0.43
网卡interface
eth0
RealServer设置创建虚拟网卡个人习惯,可选,可以绑定在任何网卡上面
1ip link add ipvs0 type dummy
配置不响应ARP请求方法1: 调整内核参数方法2: 采用arptables12345# 不响应ARP请求, 修改内核参数echo "1" > /proc/sys/net/ipv4/conf/ipvs0/arp_ignoreecho "1" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho &qu ...