2022年8月31日星期三
2022年8月28日星期日
Linux下定期自动更新https加密证书
前置准备
sudo apt install zip
sudo apt install curl
建立证书及脚本及执行
mkdir /etc/ssl/zscd /etc/ssl/zs
vim /etc/ssl/zs/ssl_update.sh
./ssl_update.sh
启动:service cron start
编辑定时任务
想要退出,按下Ctrl+X。
如果你退出前没有保存所做的修改,它会提示你是否要保存;如果不要,请按N,反之,则按Y;然后它会让你确认要保存的文件名,确认或修改后按Enter即可。
crontab -l
根据接口文档,可以编写满足需求的bash文件,实现自动部署功能。 主要参数说明:
API获取地址 API接口
ssl_update.sh 自定义脚本内容
ORDER_ID:证书ID TYPE:证书ID类型。建议auto。 API_TOKEN:接口凭证,在后台获取。 API_USER:账户名。注册的邮箱或者手机号。
#!/usr/bin/env bash
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# 参数配置 开始
ORDER_ID='*****'
TYPE='auto'
API_TOKEN='**************'
API_USER='**************'
FILE_CERT='/etc/ssl/zs/fullchain.crt'
FILE_CERT_KEY='/etc/ssl/zs/private.pem'
COMAND_RELOAD='nginx -s reload'
# 参数配置 结束
# 以下内容根据需求修改
# 证书到期前13天内才会更新
isexpire=`openssl x509 -in ${FILE_CERT} -noout -enddate -checkend 9123200`
if echo "${isexpire}" | grep " not " ; then
echo "Certificate will not expire."
exit 1
fi
API_URL='https://api.osfipin.com/letsencrypt/api'
URL_ORDER_DOWN="${API_URL}/order/down"
HEADER_AUTHOR="Authorization: Bearer ${API_TOKEN}:${API_USER}"
ZIP_FILE="${ORDER_ID}.$RANDOM"
curl ${URL_ORDER_DOWN} -H "${HEADER_AUTHOR}" -G -d "id=${ORDER_ID}" -d "type=${TYPE}" -o ${ZIP_FILE}.zip
if [ ! -s "${ZIP_FILE}.zip" ]; then
echo "download error."
exit 1
fi
size=`du -b ${ZIP_FILE}.zip | awk '{print $1}'`
if [[ ${size} -lt 500 ]]; then
echo "download file error."
cat ${ZIP_FILE}.zip
unlink ${ZIP_FILE}.zip
exit 1
fi
# 解压 移动文件
mkdir -p ${ZIP_FILE}
unzip ${ZIP_FILE}.zip -d ${ZIP_FILE}
/bin/cp ${ZIP_FILE}/fullchain.crt ${FILE_CERT}
/bin/cp ${ZIP_FILE}/private.pem ${FILE_CERT_KEY}
# 删除 打完收工
unlink ${ZIP_FILE}.zip
rm -rf ${ZIP_FILE}
`${COMAND_RELOAD}`
证书设置为 自动重申(启用自动验证,重新申请后,证书ID会保持不变,需要账户类型为VIP)
设置定时任务:
crontab -e 创建定时任务 crontab -l 查看配置文件
0 0 1 1-12/3 * root /etc/ssl/zs/ssl_update.sh “从1月到12月,每3个月的每月1日00:00执行./etc/apache2/ssl/ssl.sh文件。”
0 0 1 * * /etc/ssl/zs/ssl_update.sh “每月的1日00:00 执行./etc/apache2/ssl/ssl.sh文件。”
Oracle Cloud Ubuntu 防火墙设置及开启root用户登录
Oracle Cloud甲骨文VPS在创建vps后某些服务要对防火墙进行放行设置。
控制面板及系统设置:
1)查看实例详情,点击【虚拟云网络】2)然后点击子网中的数据3)再点安全列表中的数据。4)入站规则,可见仅开放了22端口!ICMP 也是关闭的(禁ping)!5)编辑第一条数据。将目的地端口范围里的数据清空!保存即可!!6)或者更暴力一点开放所有协议!!!# 停止firewall
systemctl stop firewalld.service
# 禁止firewall开机启动
systemctl disable firewalld.service
# 关闭iptables
service iptables stop
# 去掉iptables开机启动
chkconfig iptables off
iptables -I INPUT -p 协议 -m 协议 --dport 端口 -j ACCEPT
iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
甲骨文vps开启root用户登录:
ssh连接上甲骨文vps(centos的用户名为opc,ubuntu的用户名为ubuntu),输入下面的命令回车切换到root用户
sudo -i
切换为root用户后,依次输入下面的命令修改为root密码登录(下面中文换成你的密码)
echo root:你设置的密码 |sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart
所有命令执行完成后就可以通过root用户登录甲骨文vps了
甲骨文vps取消默认ubuntu用户使用私钥登录:
彻底删除用户(加上-r的选项,在删除用户的同时一起把这个用户的宿主目录和邮件目录删除)
sudo userdel -r ubuntu
新建用户
sudo adduser ubuntu
添加sudo权限
sudo vim /etc/sudoers
#修改示例:ubuntu ALL=(ALL:ALL) ALL
usermod -g root ubuntu
添加用户到相应的组
sudo adduser ubuntu --in group www-data
将用户ubuntu添加到www-data组中
设置完成后即改为用户名加密码登录
2022年8月26日星期五
飞时达土方计算软件简单使用
飞时达土方计算软件
原始数据处理:
原始地形数据
1-数据转换-高程点转换-输入最小有效高程及最大有效高程-选择要转换的样本图元-选择原始地貌高程点-根据提示完成转换
设计/完成面数据
2-控制点-控制点转换-输入最小有效高程及最大有效高程-选择要转换的样本图元-选择原始地貌高程点-输入实际标高点相对文字位置-根据提示完成转换
方格网法计算土方
1-方格网法-确定计算范围-绘制区域-输入区块编号-跟踪描绘-封闭区域-是否划分多个区块 2-方格网法-自动布置方格网-在区块内任选一点-打开方格网布置方式对话框-设置方格网横向纵向间距-确定-右键确认完成布置 3-方格网法-采集自然标高-点取需要采集标高的区块-右键确认 4-方格网法-确定设计标高-采集设计标高-点取需要采集标高的区块-右键确认 5-方格网法-计算土石方量-计算土方量-设置松散系数-点击确定-点取需要计算土方的区块 6-方格网法-土方量汇总-土方量统计表-绘制-在图形中适当位置点击完成表格绘制
三角网法计算土方
1-三角网法-确定计算范围-绘制区域-输入区块编号-跟踪描绘-封闭区域-是否划分多个区块 2-三角网法-自动布置三角网-在区块内任选一点-打开自动生成三角网对话框-设置三角网布置点来源-设置等分距离-设置区块边界标高-确定-右键确认完成布置 3-三角网法-采集自然标高-点取需要采集标高的区块-右键确认 4-三角网法-采集设计标高-点取需要采集标高的区块-右键确认 5-三角网法-计算土方量--考虑松散系数-点击确定-点取需要计算土方的区块 6-三角网法-土方量统计表-绘制-在图形中适当位置点击完成表格绘制
CASS11——方格网计算土方
方格网法土方计算
基本理论
(一)计算条件:计算区域边界线、原始地貌高程点、设计面高程点; 基本要素,三者缺一不可。 1,原始地貌 2,设计地貌 3,计算范围线 (二)计算原理:加权平均法。即:[(左上角原始地貌高程-左上角设计面高程)+(左下角原始地貌高程-左下角设计面高程)+(右上角原始地貌高程-右上角设计面高程)+(右下角原始地貌高程-右下角设计面高程)]÷高差个数×方格网面积;
如上图所示,1、黄色字体代表:软件以外业测量得到的原始地貌高程的加权平均值作为计算时的原始地貌高程;2、青色字体代表:设计面高程;3、洋红色字体代表:原始地貌高程的加权平均值与设计面高程的高差,其中,负值代表设计面高程比原始地貌高程大,需要填方,正值代表设计面高程比原始地貌高程小,需要挖方;4、T=28.272代表:本方格网中填方为28.272立方米;5、W=0.024代表:本方格网中挖方为0.024立方米。6、完整的方格网图中还有一条挖填平衡线作为挖方和填方的分界线。
(三)计算特点:该方法通过求出方格网每个角落高差的平均值,再乘以方格网面积; (四)计算局限:由于方格网法土方计算是一种加权平均法,计算精度没有三角网法高,可操作性大; (五)应用范围:指导现场施工; (六)电算步骤:使用南方CASS11软件完成计算
类型一:完成面为平面
1、打开软件→文件→打开已有图形→弹出选择文件对话框→点选带有计算区域边界线(可用PL命令绘制闭合多段线)的CAD图(dwg格式)→打开;
2、工程应用→方格网法土方计算→方格网土方计算→根据命令栏提示:选择计算区域边界线→点选计算区域边界线→弹出方格网土方计算对话框→点击“输入数据文件”(高程点坐标)后面的按钮→弹出输入高程坐标数据文件名对话框→点选原始地貌高程点的DAT文件→打开;
3、在设计面下点选平面→输入目标高程(即设计平场标高)→输入方格网宽度→点击确定; 4、根据命令栏提示:请确定方格起始位置:<缺省位置>→直接回车。
类型二:斜面【基准点】
1、打开软件→文件→打开已有图形→弹出选择文件对话框→点选带有计算区域边界线(可用PL命令绘制闭合多段线)的CAD图(dwg格式)→打开; 2、工程应用→方格网法土方计算→方格网土方计算→根据命令栏提示:选择计算区域边界线→点选计算区域边界线→弹出方格网土方计算对话框→点击“输入高程点坐标数据文件”后面的查询按钮→弹出输入高程坐标数据文件名对话框→点选原始地貌高程点的DAT文件→打开; 3、在设计面下点选斜面【基准点】→输入坡度(%)→点击拾取按钮→根据命令栏提示:点取设计面基准点→点取坡顶基准点→根据命令栏提示:指定斜坡设计面向下的方向→点取坡底基准点→在“基准点设计高程”后面的方框中输入坡顶高程→输入方格网宽度→点击确定; 4、根据命令栏提示:请确定方格起始位置:<缺省位置>→直接回车。
类型三:斜面【基准线】
1、打开软件→文件→打开已有图形→弹出选择文件对话框→点选带有计算区域边界线(可用PL命令绘制闭合多段线)的CAD图(dwg格式)→打开; 2、工程应用→方格网法土方计算→方格网土方计算→根据命令栏提示:选择计算区域边界线→点选计算区域边界线→弹出方格网土方计算对话框→点击“输入高程点坐标数据文件”后面的查询按钮→弹出输入高程坐标数据文件名对话框→点选原始地貌高程点的DAT文件→打开; 3、在设计面下点选斜面【基准线】→输入坡度(%)→点击拾取按钮→根据命令栏提示:点取基准线第一点→点取坡顶的第一个基准点→根据命令栏提示:点取基准线第二点→点取坡顶的第二个基准点→软件会自动捕捉两个基准点的中点→根据命令栏提示:指定设计高程低于基准线方向上的一点→点取指定设计高程低于基准线方向上的中点→输入基准线点1和基准线点2的设计高程→输入方格网宽度→点击确定; 4、根据命令栏提示:请确定方格起始位置:<缺省位置>→直接回车。
类型四:完成面高度随机(即完成面不在同一标高)
1、打开软件→文件→打开已有图形→弹出选择文件对话框→点选带有计算区域边界线(可用PL命令绘制闭合多段线)的CAD图(dwg格式)→打开; 2、工程应用→高程点生成数据文件→无编码高程点→输入高程数据文件名→输入高程点(原始地貌)所在图层名→直接回车取高程点实体Z值→生成原始地貌高程.dat文件; 3、工程应用→高程点生成数据文件→无编码高程点→输入高程数据文件名→输入高程点(完成面地貌)所在图层名→直接回车取高程点实体Z值→生成完成面地貌高程.dat文件; 4、工程应用→方格网法土方计算→方格网土方计算→根据命令栏提示:选择计算区域边界线→点选计算区域边界线→弹出方格网土方计算对话框→点击“输入高程点坐标数据文件”后面的查询按钮→弹出输入高程坐标数据文件名对话框→点选原始地貌高程点的DAT文件→打开; 5、等高线-建立三角网-选择建立DTM的方式-由数据文件生成-坐标数据文件名-导入完成面地貌高程.dat文件-完成三角网建立; 6、等高线-三角网存取-写入文件-输入三角网文件名-生成完成面三角网.sjw文件; 7、工程应用→方格网法→方格网法土方计算→根据命令栏提示:选择计算区域边界线→点选计算区域边界线→弹出方格网土方计算对话框→选择土方计算的方式→由图面高程点生成-或点击“输入数据文件”(高程点坐标)后面的按钮输入数据文件→设计面→三角网文件→输入三角网文件→弹出输入三角网数据文件对话框→点选完成面地貌三角网数据文件选择→设置方格网宽度→点击确定;
8、根据命令栏提示:请确定方格起始位置:<缺省位置>→直接回车。
手算步骤:
1、根据高差变化,采用内插法,找到方格网每个边的零点; 2、用直线将零点连接起来,称为零线; 3、计算出用零线围成的封闭区域面积; 4、采用“[(左上角原始地貌高程-左上角设计面高程)+(左下角原始地貌高程-左下角设计面高程)+(右上角原始地貌高程-右上角设计面高程)+(右下角原始地貌高程-右下角设计面高程)]÷高差个数×方格网面积”这个公式即可计算出方格网的挖填方量。 注意事项:零点所在的角高差为0,代表不挖也不填,但仍然要参与方格网平均高差的计算。
特别提示:
1、如果是已经开挖完毕的地块,建议用两期土方的方法计算。先把原始地貌和设计地貌分别建立三角网并储存,然后点工程应用,方格网计算,两期土石方计算,如果没有这个选项就安装高版本CASS。如果是预算,就要用HDCAD,飞时达土方,鸿业土方软件计算了,南方CASS最多只能计算两级放坡,超过2个台阶的边坡就不能计算了。
2、数据快速处理,处理为南方CASS能识别的格式
导入数据显示如图
快速添加点号后面的引号,
数据导入后,点位数据序号后插入一列,然后另存为,保存类型选择为【CSV(逗号分隔)(*.csv)】,提示“如果另存为CSV(逗号分隔),你工作藏中的部分功能可能会丢失”,选择是保存。
找到刚才保存的文件,进行重命名,把文件格式【*.cav】改为【*.dat】。
Word自动输入千分位符
Word自动输入千分位符
选中要加千分符的数据
勾选使用通配符
在查找内容中输入 ([0-9])([0-9]{3})([!0-9年]) 替换为 \1,\2\3
点击全部替换确定即可
查找框中“([0-9])([0-9]{3})([!][0-9年])”的含义是:
()[ ]{ }称为:通配符。
( ) 表达式,[ ] 范围内的任意单个字符,{ } 指定前一范围次数(勾选 “使用通配符”复选框让通配符设定的条件起作用)。
意思是:查找不是0-9或者“年”之前的三位以上的数字(WORD默认从左到右顺序查找)。
替换框中“\1,\2\3”的含义是:\1代表查找框中第一个表达式,\2代表查找框中第二个表达式,以此类推。意思是:按从左到右的顺序,在不是0-9或者“年”前的第四位数字后加千分位符(,)。如:10000000.00元,按第一次“全部替换”按钮为:10000,000.00元,按第二次“全部替换”按钮为:10,000,000.00元,按第三次“全部替换”按钮为:“替换0处”完成。
那么,又该如何批量取消千位分隔符呢?
CTRL+H调出“查找和替换”对话窗口,勾选“使用通配符”。
在“查找内容”框中填入:([0-9]),([0-9])
在“替换为”框中填入:\1\2
执行“全部替换”。
选中要加千分符的数据
勾选使用通配符
在查找内容中输入([0-9])([0-9]{3})([!0-9年]),替换为\1,\2\3
点击全部替换确定即可
查找框中“([0-9])([0-9]{3})([!][0-9年])”的含义是:
()[ ]{ }称为:通配符。
( ) 表达式,[ ] 范围内的任意单个字符,{ } 指定前一范围次数(勾选 “使用通配符”复选框让通配符设定的条件起作用)。
意思是:查找不是0-9或者“年”之前的三位以上的数字(WORD默认从左到右顺序查找)。
替换框中“\1,\2\3”的含义是:\1代表查找框中第一个表达式,\2代表查找框中第二个表达式,以此类推。意思是:按从左到右的顺序,在不是0-9或者“年”前的第四位数字后加千分位符(,)。如:10000000.00元,按第一次“全部替换”按钮为:10000,000.00元,按第二次“全部替换”按钮为:10,000,000.00元,按第三次“全部替换”按钮为:“替换0处”完成。
那么,又该如何批量取消千位分隔符呢?
CTRL+H调出“查找和替换”对话窗口,勾选“使用通配符”。
在“查找内容”框中填入:([0-9]),([0-9])
在“替换为”框中填入:\1\2
执行“全部替换”。
去掉打开cad时的开始界面并默认新建一个空白文档
关闭“开始”页:
新建一个空白文件或打开一张已有DWG图纸
在命令行中输入“startmode”命令后回车。
将默认的“1”改为“0”,然后回车。
此时,开始页就立即关闭了。
恢复“开始”页:
同样,在命令行中输入“startmode”并回车。
输入“1”,然后回车。
在打开cad的时候默认新建一个空白文件:
新建一个空白文件或打开一张已有DWG图纸
在命令行中输入输入“startup“命令后回车。
默认数值是3,输入0回车,关闭cad,再次打开cad的时候默认新建一个空白文件。
在Ubuntu 20.04 Server上安装Cockpit Web Console
从Ubuntu 17.04开始,可在默认软件包存储库中使用cockpit软件包。因此,使用apt命令进行安装变得非常简单,
$ sudo apt update
$ sudo apt install cockpit -y
成功安装好座舱软件包后,请使用以下systemctl命令启动其服务,
$ sudo systemctl start cockpit
运行以下命令以验证驾驶舱服务的状态,
$ sudo systemctl status cockpit
以上输出确认驾驶舱已成功启动。
访问Cockpit Web控制台
如果在Ubuntu服务器20.04上配置了防火墙,则座舱会在9090 tcp端口上侦听其服务,那么您必须在防火墙中允许9090端口。
root@ubuntu:# ss -tunlp | grep 9090
tcp LISTEN 0 4096 *:9090 *:*
root@ubuntu:~$
运行以下“ ufw ”命令,以在操作系统防火墙中允许驾驶舱端口,
root@ubuntu:# sudo ufw allow 9090/tcp
Rule added
Rule added (v6)
root@ubuntu:#
现在,使用以下网址访问Cockpit Web控制台:
https:// <您的服务器IP>:9090
Oracle cloud VM实例vps配置ssh+密码登录
Oracle cloud VM实例没有用户预设 ssh 密钥功能,而且配置 ssh 登录过程还非常的麻烦的,不过好在甲骨文提供了启动脚本 (cloud-init),即在创建 mv 实例第一次开机时执行启动脚本。
有了这个功能,我们就可以在首次开机配置 ssh 相关设置。基本原理
原理就是在新实例开机的时候执行脚本,自动修改目录下 /etc/ssh/sshd_config 的这个 ssh 配置文件,修改 PermitRootLogin 和 PasswordAuthentication 参数,并且顺便修改 root 密码。
cloud-init 脚本内容
cloud-init 开机脚本在高级选项这一栏中。
debian / ubuntu
精准查找,适合 debian 与 ubuntu 系统。
其中 123456789
是你需要设置的 root 密码。
#!/bin/bash
echo root:123456789 |sudo chpasswd root
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart
centos
精准查找,适合 centos 系统。
其中 123456789
是你需要设置的 root 密码。
#!/bin/bash
echo root:123456789 |sudo chpasswd root
sudo sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart
通用脚本 (模糊查找)
模糊查找,理论上适合大部分 Linux 操作系统。
其中 123456789
是你需要设置的 root 密码。
#!/bin/bash首次登录方法:
echo root:123456789 |sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart
引导卷镜像备份和镜像恢复
甲骨文实例不提供系统重置功能,由于资源限制,ARM 实例可能删除后就开不出来,如果折腾坏了就需要救砖,可以一开始就自己备份一个包用于救砖。
以下是操作方法:
这里要用到免费的 AMD 实例,每个账户有 2 个免费 AMD 实例份额,这时候就体现出它的价值了。 首先从原Arm实例分离引导卷,将分离的引导卷挂载到另外一个AMD实例,挂载的时候不要选 iscsi,选择半虚拟化,不需要输命令。
然后在AMD实例中 dd 保存已挂载的Arm实例引导卷的镜像,因为整个盘镜像实际大小 47G,dd 时需要进行压缩。这里使用 gz 压缩,根据原系统系统不同,dd 备份的大小不一样。 ubuntu 20.04 arm 最后得到的包大约大小是 631M。oracle linux 8 arm 最后得到的包大约大小是 1.28G。
备份命令是
dd if=/dev/sdb | gzip > /root/ubuntu.img.gz
备份需要一定的时间。 这个备份镜像的恢复命令是
gzip -dc /root/ubuntu.img.gz | dd of=/dev/sdb
查看进度命令 开另外一个 ssh 窗口,每五秒输出一次进度信息
watch -n 5 pkill -USR1 ^dd$
镜像的恢复时间需要一个小时以上。 等待完成后,卸载掉这个引导卷,挂载回原实例,开机即可恢复。
磁盘附加到原机是在原实例操作 计算>实例>实例详细信息>引导卷>附加引导卷
如果一开始自己没有制作 dd 包备份,需要提供一个备份的 dd 镜像,供救砖使用。
http://app.isos.cc/ubuntu.img.gz 链接为oracle ubuntu 20.04 (非 mini)Arm 版Arm实例引导卷的备份镜像。
首先在其他实例上挂载好需要救砖的引导卷。 使用 wget 命令下载这个包。
cd /root && wget http://app.isos.cc/ubuntu.img.gz
使用 dd 命令恢复
gzip -dc /root/ubuntu.img.gz | dd of=/dev/sdb
整个恢复过程需要 1-2 个小时的时间。 等待完成后,卸载掉这个恢复好的引导卷,挂载回原实例,开机即可。 恢复后的系统账号是 root 密码是 putaosi.com 登录后需要第一时间修改密码