1 | tar cf - win11.qcow2 2> /dev/null | xz -6T 12 - > wi11.qcow2.tar.xz |
压缩比:6 线程数:12
1 | tar cf - win11.qcow2 2> /dev/null | xz -6T 12 - > wi11.qcow2.tar.xz |
压缩比:6 线程数:12
docker-compose.yml文件新建目录:openvpn-data/conf1
2
3
4
5
6
7
8
9
10
11
12version: '2'
services:
openvpn:
cap_add:
- NET_ADMIN
image: kylemanna/openvpn
container_name: openvpn
ports:
- "1194:1194/udp"
restart: always
volumes:
- ./openvpn-data/conf:/etc/openvpn
1 | docker-compose run --rm openvpn ovpn_genconfig -u udp://192.168.1.8 |
192.168.1.8可以换成自己的外网IP或域名
1 | docker-compose run --rm openvpn ovpn_initpki |
Enter New CA Key Passphrase: 123456
Common Name (eg: your user, host, or server name) [Easy-RSA CA]: 输入 hlooc
Enter pass phrase for /etc/openvpn/pki/private/ca.key: 123456
1 | docker-compose up -d openvpn |
1 | docker-compose run --rm openvpn easyrsa build-client-full hlooc |
Enter PEM pass phrase: 234567
Verifying - Enter PEM pass phrase:234567
Enter pass phrase for /etc/openvpn/pki/private/ca.key: 123456(注意要与服务端密码一致)
1 | docker-compose run --rm openvpn ovpn_getclient hlooc > hlooc.ovpn |
1 | docker-compose run --rm openvpn ovpn_revokeclient hlooc |
1 | DROP PROCEDURE IF EXISTS `insert_hlooc`$$ |
使用了CONCAT与LPAD函数
1 | LPAD(str,len,padstr) |
返回字符串str,将其左填充字符串padstr至len个字符的长度。 如果str大于len,则返回值缩短为len个字符。
CONCAT函数用于连接两个字符串以形成单个字符串1
2
3
4
5
6
7mmysql> SELECT CONCAT('FIRST ', 'SECOND');
+----------------------------+
| CONCAT('FIRST ', 'SECOND') |
+----------------------------+
| FIRST SECOND |
+----------------------------+
1 row in set (0.00 sec)
systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之
分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.
每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]
[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,
After用于描述服务类别
[Service]部分是服务的关键,是服务的一些具体运行参数的设置.
Type=forking是后台运行的形式,
User=users是设置服务运行的用户,
Group=users是设置服务运行的用户组,
PIDFile为存放PID的文件路径,
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令,
PrivateTmp=True表示给服务分配独立的临时空间
[Service] 注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报
错!
[Install][Install]部分是服务安装的相关设置,可设置为多用户的
首先,使用systemctl start [ 服务名(也是文件名) ] 可测试服务是否可以成功运行,如果不能运行 则可以使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其他服务信息,然后根据报
错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。
接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。
1 | [Unit] |
添加可执行权限:1
chmod 754 /usr/lib/systemd/system/springboot-webapp.service
设置为开机自启动:1
systemctl enable springboot-webapp.service
常用指令(以springboot-webapp服务为例):
启动某服务1
systemctl start springboot-webapp.service
停止某服务1
systemctl stop springboot-webapp.service
重启某服务1
2service springboot-webapp restart
systemctl restart springboot-webapp.service
使某服务自动启动(如springboot-webapp服务)1
systemctl enable springboot-webapp.service
使某服务不自动启动1
systemctl disable springboot-webapp.service
检查服务状态1
2systemctl status springboot-webapp.service (服务详细信息)
systemctl is-active springboot-webapp.service(仅显示是否Active)
显示所有已启动的服务1
systemctl list-units --type=service
1 | package cn.hlooc; |
使用语法1
2qemu-img convert -f <原格式> -O <目标格式> <原文件路径> <目标文件路径>
这里 -f <原格式>可以忽略。qemu-img会自动识别
vmdk与qcow2互转1
2
3qemu-img convert -O qcow2 test.vmdk test.qcow2
#qcow2转vmdk
qemu-img convert -O vmdk test.qcow2 test.vmdk
vdi转qcow21
qemu-img convert -O qcow2 test.vdi test.qcow2
vhd&vhdx转qcow21
qemu-img convert -O qcow2 test.vhdx test.qcow2
RAW转qcow21
qemu-img convert -O qcow2 test.raw test.qcow2
img转qcow21
qemu-img convert -O qcow2 test.img test.qcow2
1 | public class RaceTest implements Runnable { |
linux下使用dd命令复制磁盘1
# dd if=/dev/sdc of=/dev/sdd bs=2M status=progress