Difference between revisions of "系统安装"

From Danbing
Jump to navigation Jump to search
 
(70 intermediate revisions by the same user not shown)
Line 15: Line 15:
 
==== '''linux命令集''' ====
 
==== '''linux命令集''' ====
 
===== 用户管理 =====
 
===== 用户管理 =====
useradd -M -o -r -d /home/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
+
sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
 +
sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn
  
groupadd
+
groupadd
  
  
Line 111: Line 112:
 
  apt-file search filename | grep /bin/
 
  apt-file search filename | grep /bin/
  
===== mcrypt =====
+
===== PHP5 mcrypt =====
 +
#mcrypt is not used anymore
 
  apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev
 
  apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev
 +
#mcrypt not used in php7.3.0, alternative way applied and OK.
  
 
  //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
 
  //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
Line 118: Line 121:
 
  sudo service apache2 restart
 
  sudo service apache2 restart
  
  sudo apt-get install php
+
===== 20.04 apache-php =====
  sudo apt-get install php-gd
+
sudo apt-get install -y apache2
  sudo apt-get install php-mysqli
+
  sudo apt-get install -y php
 +
  sudo apt-get install -y php-gd
 +
  sudo apt-get install -y php-mysqli
 +
sudo apt-get install -y php-redis
 +
sudo apt install -y php-curl
 +
sudo apt install -y php-xml
 +
sudo apt install -y php-mbstring
  
 
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY "xxx";
 
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY "xxx";
 +
GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY "xxx";
 +
 +
sudo apt install mercurial
  
 
==== '''cron''' ====
 
==== '''cron''' ====
Line 136: Line 148:
 
  #* * * * * sleep 40; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron5.txt
 
  #* * * * * sleep 40; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron5.txt
 
  #* * * * * sleep 50; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron6.txt
 
  #* * * * * sleep 50; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron6.txt
 
 
 
<ul style="color: red; margin-left: 20px">
 
#abcd
 
#efgh
 
</ul>
 
 
{| stype="width:75%; height:200px" border='0'
 
|-
 
|姓名
 
|性别
 
|年龄
 
|- style="background:navy; color:white"
 
|jim
 
|M
 
|30
 
|}
 
 
mediawiki-1.22.5/skins/common/shared.css
 
 
 
{| cellpadding="2" cellspacing="1" class="table001"
 
|-
 
|姓名A
 
|性别A
 
|年龄A
 
|-
 
|jim
 
|M
 
|30
 
|}
 
<code>Hello World.</code>
 
  
 
==== Easy RSA ====
 
==== Easy RSA ====
 
===== basic =====
 
===== basic =====
 +
. ./vars
 
  1850  ./clean-all
 
  1850  ./clean-all
 
  1851  ./build-ca
 
  1851  ./build-ca
Line 186: Line 166:
 
  1864  ./build-key client10
 
  1864  ./build-key client10
 
  1865  ./build-key client00
 
  1865  ./build-key client00
 +
 +
/usr/share/doc/openvpn/examples/sample-config-files
  
 
==== OPENVPN ====
 
==== OPENVPN ====
 
===== misc =====
 
===== misc =====
 +
ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252
 +
ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162
 +
 
===== route =====
 
===== route =====
 
  Local Route:
 
  Local Route:
Line 195: Line 180:
 
  Remote Route:
 
  Remote Route:
 
  push "route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway"
 
  push "route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway"
 +
 +
 +
./revoke-full client1
 +
crl-verify crl.pem
  
 
==== KVM Install ====
 
==== KVM Install ====
Line 232: Line 221:
 
  yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c
 
  yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c
  
  sudo apt-get install -y qemu-kvm
+
  sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer
sudo apt-get install -y bridge-utils virt-manager virt-viewer
 
  
 
  sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c
 
  sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c
 
  
 
===== Create VM =====
 
===== Create VM =====
Line 273: Line 260:
 
  qemu-img create -f raw SQL100.1.data.img 80G
 
  qemu-img create -f raw SQL100.1.data.img 80G
  
====== VM 96/100 ======
+
====== VM 96/100 ======
 
  Creat With SYS Disk only:
 
  Creat With SYS Disk only:
 
  sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \
 
  sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \
 +
--os-variant=ubuntu20.04 \
 
  --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \
 
  --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \
  --network bridge=virbr0,model=virtio \
+
  --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \
  --network bridge=virbr1,model=virtio \
+
  --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \
 
  --graphics vnc --accelerate --boot hd
 
  --graphics vnc --accelerate --boot hd
  
 
  Creat With SYS and Data Disks:
 
  Creat With SYS and Data Disks:
 
  virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \
 
  virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \
 +
--os-variant=ubuntu20.04 \
 
  --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \
 
  --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \
 
  --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \
 
  --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \
  --network bridge=virbr0,model=virtio \
+
  --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \
  --network bridge=virbr1,model=virtio \
+
  --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \
 +
--graphics vnc --accelerate --boot hd
 +
 
 +
Creat K8S With SYS and Data Disks:
 +
sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \
 +
--os-variant=ubuntu20.04  \
 +
--disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \
 +
--disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \
 +
--network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \
 +
--network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \
 
  --graphics vnc --accelerate --boot hd
 
  --graphics vnc --accelerate --boot hd
 +
 +
 +
======= PassThrough USB ports: =======
 +
Host:
 +
# lsusb
 +
...
 +
Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One
 +
#/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3
  
 
===== Maintain VM =====
 
===== Maintain VM =====
Line 299: Line 305:
  
 
  virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img
 
  virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img
 +
 +
sudo apt install libosinfo-bin
 +
osinfo-query os
 +
You can restart your domain by running:
 +
  virsh --connect qemu:///system start BASE200.1.31.82
 +
 +
sudo apt install libguestfs-tools
 +
sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh
 +
 +
==== Kubernete Setup ====
 +
===== VM setup =====
 +
 +
sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd
 +
 +
qemu-img create -f raw K8S.node00.data.img 200G
 +
qemu-img create -f raw K8S.node01.data.img 200G
 +
 +
sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd
 +
sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd
 +
 +
 +
virsh --connect qemu:///system start BASE200.1.31.52.k8s.master
 +
 +
sudo hostnamectl set-hostname k8s-master
 +
sudo hostnamectl set-hostname k8s-node00
 +
sudo hostnamectl set-hostname k8s-node01
 +
 +
===== INSTALL =====
 +
 +
====== docker ======
 +
sudo apt update
 +
sudo apt install docker.io
 +
 +
sudo tee /etc/docker/daemon.json << EOF
 +
{-----BEGIN CERTIFICATE-----
 +
EOF
 +
 +
sudo tee /etc/docker/daemon.json << EOF
 +
{
 +
  "registry-mirrors": ["https://ffvpn.net", "https://lk8iycdu.mirror.aliyuncs.com"],
 +
  "exec-opts": ["native.cgroupdriver=systemd"],
 +
  "log-driver": "json-file",
 +
  "log-opts": {
 +
    "max-size": "100m"
 +
  },
 +
  "storage-driver": "overlay2"
 +
}
 +
EOF
 +
 +
====== docker-compose ======
 +
sudo apt install docker-compose-v2
 +
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 +
 +
====== Docker Pods setup ======
 +
 +
$docker run -d \
 +
  --name my-pod-infra \  # 基础容器名(模拟 Pod 名称)
 +
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口(后续实例可复用)
 +
  registry.k8s.io/pause:3.9
 +
 +
====== registry/mirror ======
 +
/etc/docker/certs.d/ffvpn.net/ca.crt <--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem
 +
/etc/docker/daemon.json
 +
"registry-mirrors": ["https://lk8iycdu.mirror.aliyuncs.com"],
 +
 +
docker exec -it my-pod-nginx-1 /bin/s
 +
docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2
 +
docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2
 +
docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2
 +
 +
sudo usermod -aG docker $USER
 +
newgrp docker
 +
 +
[jim@k8s-master /etc/ssl/certs]
 +
$sudo ln -s /home/jim/cert23.pem cert23.pem
 +
 +
 +
[jim@ubuntu96 ~]
 +
$sudo docker run -d --name registry -p 443:5000  -v /home/docker.mirror:/var/lib/registry  -v /home/jim/register.cert/ffvpn.net:/certs  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem  -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem  lk8iycdu.mirror.aliyuncs.com/library/registry:2
 +
 +
$sudo docker ps
 +
CONTAINER ID  IMAGE                                            COMMAND                  CREATED      STATUS        PORTS                                    NAMES
 +
24f880e0771f  lk8iycdu.mirror.aliyuncs.com/library/registry:2  "/entrypoint.sh /etc…"  4 days ago  Up 23 hours  0.0.0.0:443->5000/tcp, :::443->5000/tcp  registry
 +
 +
====== image operations ======
 +
docker save -o myimages.tar image1:tag1 [image2:tag2]
 +
sudo chown cloveropen:cloveropen myimages.tar
 +
docker load -i myimage.tar | docker load < myimages.tar
 +
 +
====== openvpn/macvlan ======
 +
sudo brctl stp br0 off
 +
sudo sysctl -w net.ipv4.ip_forward=1 && sudo sysctl -p
 +
sudo docker network create -d macvlan \
 +
  --subnet=SUBNET \
 +
  --gateway=GATEWAY \
 +
  -o parent=PHY_IFACE \
 +
  -o macvlan_mode=bridge  # 显式指定 bridge 模式
 +
  my-macvlan-net
 +
 +
ping to host net:
 +
sudo ip link add macvlan-shim link br0 type macvlan mode bridge
 +
sudo ip addr add 192.168.1.200/24 dev macvlan-shim
 +
sudo ip link set macvlan-shim up
 +
sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP
 +
 +
====== kuberlete ======
  
 
==== Sys Conf ====
 
==== Sys Conf ====
 +
===== disk manage =====
 +
vgs
 +
lvs
 +
vgdisplay -v ubuntu-vg
 +
lvdisplay -v /dev/ubuntu-vg/ubuntu-lv
 +
 +
lvremove /dev/ubuntu-vg/lvol0
 +
lvcreate -l 100 ubuntu-vg -n lv-0
 +
lvextend -l +1000 /dev/ubuntu-vg/lv-0
 +
 +
mkfs -t ext4 /dev/ubuntu-vg/lv-0
 +
 
===== g4u =====
 
===== g4u =====
 
  iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022
 
  iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022
Line 319: Line 443:
 
===== Jenkins =====
 
===== Jenkins =====
 
  192.168.31.91: jim:6
 
  192.168.31.91: jim:6
 +
 +
sudo vi /etc/systemd/logind.conf
 +
#HandleLidSwitch=suspend
 +
HandleLidSwitch=ignore
 +
sudo restart systemd-logind
 +
 +
===== Disk pm =====
 +
sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024
 +
 +
==== 20.04 rc.local ====
 +
$ sudo vim /lib/systemd/system/rc-local.service
 +
 +
==== IPTABLES STATISTICS ====
 +
iptables -N TRAFFIC_IN
 +
iptables -N TRAFFIC_OUT
 +
iptables -I FORWARD -i tun5 -j TRAFFIC_IN
 +
iptables -I FORWARD -o tun5 -j TRAFFIC_OUT
 +
iptables -A TRAFFIC_IN --src 10.8.5.6
 +
iptables -A TRAFFIC_OUT --dst 10.8.5.6
 +
iptables -L -nv
 +
iptables -F TRAFFIC_IN
 +
iptables -F TRAFFIC_OUT
 +
 +
==== Win10 WSL ====
 +
Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
 +
Win + R: winver
 +
wsl -l -o
 +
wsl --set-default-version <Version#>, replacing <Version#> with either 1 or 2.
 +
wsl --setdefault <DistributionName>
 +
wsl --install -d Ubuntu-18.04
 +
 +
 +
diskpart
 +
>select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
 +
>compact vdisk
 +
>exit
 +
 +
wsl --list
 +
wsl -l -v
 +
wsl --list --online
 +
wsl --terminate Ubuntu-18.04
 +
 +
wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar
 +
wsl --unregister Ubuntu-18.04
 +
wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar
 +
 +
/etc/wsl.conf:
 +
[automount]
 +
enabled = true
 +
root = /mnt/
 +
options = "metadata,uid=1000,gid=1000,umask=22,fmask=11"
 +
mountFsTab = false
 +
[user]
 +
default = jim
 +
 +
meld crash issue:
 +
sudo apt install gnome-icon-theme
 +
 +
sz rz:
 +
zssh user@host
 +
Ctrl+space to entery file transfer mode
 +
1. sz file -> Ctrl + Space -> rz
 +
2. Ctrl + Space -> sz file  ( file will autoly rz by remote host )
 +
3. Ctrl + Space -> suspend  ( enter local shell )
 +
 +
==== PeiRate Formula ====
 +
 +
P : pei rate
 +
W : weight
 +
Fr: fee rate, 10%
 +
 +
Pi = Sum(Wn)/Wi;
 +
Pj = Sum(Wn)/Wj;
 +
Pk = Sum(Wn)/Wk;
 +
 +
PUi = (Pi - 1) * (1 - Fr) + 1
 +
PUi = Pi * (1 - Fr)
 +
 +
'''zcjc_order''':
 +
* usr_id
 +
* zcjc_id
 +
* pei_rate = PUi
 +
* peihaoN (order_num) 1~1000
 +
* price 100 coins/peihao
 +
* pei_sum = pei_rate * peihaoN * price
 +
----
 +
'''zcjc_Sub''':
 +
* peihaoN += order.peihaoN
 +
* pei_sum += Pi * peihaoN * price
 +
* peihaoN_stored = @ > order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;
 +
* peisum_stored = @ > pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i
 +
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) :
 +
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)
 +
* weight += Wi * (Pio - Pi)/Pio
 +
 +
==== Kubnet ====
 +
kubectl get pods -A -o wide
 +
kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2
 +
kubectl exec -it frr2-0 /bin/bash -n frr2
 +
 +
==== ZCJC operations ====
 +
ds zci init
 +
ds zci update
 +
ds zci fstart (act_finit and act_start, special for zci 5(sh000))
 +
ds zci fupdate (act_fupdate act_done)
 +
ds zci start
 +
 +
ds zci fstart 5
 +
ds zci update 5 zci_playerB_points 3030
 +
ds zci fupdate 5 3030
 +
 +
 +
 +
ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)
 +
 +
==== Wiki Demos ====
 +
<ul style="color: red; margin-left: 20px">
 +
#abcd
 +
#efgh
 +
</ul>
 +
 +
{| stype="width:75%; height:200px" border='0'
 +
|-
 +
|姓名
 +
|性别
 +
|年龄
 +
|- style="background:navy; color:white"
 +
|jim
 +
|M
 +
|30
 +
|}
 +
 +
mediawiki-1.22.5/skins/common/shared.css
 +
 +
 +
{| cellpadding="2" cellspacing="1" class="table001"
 +
|-
 +
|姓名A
 +
|性别A
 +
|年龄A
 +
|-
 +
|jim
 +
|M
 +
|30
 +
|}
 +
<code>Hello World.</code>

Latest revision as of 17:05, 13 February 2026

安装apache

  1. Change the www-data path from /var/www to /home/www
  2. Change the mysql database from /var/lib/mysql to /home/mysql
    $sudo vim /etc/mysql/my.cnf
    datadir = /home/mysql
    $sudo vim /etc/apparmor.d/usr.sbin.mysqld
    add two lines:
    /home/mysql/ r,
    /home/mysql/** rwk,
    $sudo /etc/init.d/mysql restart

pxe安装系统

linux命令集

用户管理
sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn
groupadd


  1. sudo usermod -e 2014-04-21 user01
  2. sudo usermod -e 2014-04-21 user01
  3. sudo usermod -s /bin/false user01
  4. sudo useradd -d /home/user -G users -c "ssh Users"i -M user01
ssh命令用法
ssh -l root -R 2290:127.0.0.1:22 192.208.183.206
scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/
#ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com
#ssh-keygen -t rsa -C "<your UPI> <your email address>"
#ssh-copy-id root@yellowjim.com
#alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2>&1 ssh.log &'
#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67
#iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67
ramfs用法

在Linux中可以将一部分内存mount为分区来使用,通常称之为RamDisk,分为:Ramdisk, ramfs, tmpfs.

1.Ramdisk

   在编译内核时须将Device Drivers -->> Block devices -->> Ramdisk support 支持选上,它下面还有两个选项:第一个设定Ramdisk个数,默认16个;第二个是设定Ramdisk的大小,默认是4096k。
   首先查看一下可用的RamDisk,使用ls /dev/ram*
   然后对/dev/ram0 创建文件系统,运行mke2fs /dev/ram0
   最后挂载 /dev/ram0,运行mount /dev/ram /mnt/test

2.ramfs

   Ramfs顾名思义是内存文件系统,它处于虚拟文件系统(VFS)层,而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。
   因而,它无需格式化,可以创建多个,只要内存足够,在创建时可以指定其最大能使用的内存大小。
   在编译内核时须将File systems -->> pseudo filesystems -->>  Virtual memory file system support支持选上。
   # mount -t ramfs none /testRAM
   缺省情况下,Ramfs被限制最多可使用内存大小的一半。可以通过maxsize(以kbyte为单位)选项来改变。
   # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)

3.Tmpfs

   是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs。
   Tmpfs可以使用物理内存,也可以使用交换分区。在Linux内核中,虚拟内存资源由物理内存(RAM)和交换分区组成,这些资源是由内核中的虚拟内存子系统来负责分配和管理。
   Tmpfs向虚拟内存子系统请求页来存储文件,它同Linux的其它请求页的部分一样,不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样,其大小也不是固定的,而是随着所需要的空间而动态的增减。
   在编译内核时须将File systems -->> pseudo filesystems -->>  Virtual memory file system support支持选上。
   # mkdir -p /mnt/tmpfs
   # mount tmpfs /mnt/tmpfs -t tmpfs
   同样可以在加载时指定tmpfs文件系统大小的最大限制:
   # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m
autossh
root@iZ23wubte21Z:~# cat .alias 
alias autossh_90='export AUTOSSH_POLL=20 && autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'
alias fw0='iptables -P INPUT DROP &&
iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &&  
iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &&
iptables -A INPUT -i lo -j ACCEPT &&
iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'
root@yellowjim90:~# cat .alias 
alias autossh_22='export AUTOSSH_POLL=20 && autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'
3322.org
crontab -e
/bin/date | sed 'N;s/\n/ :/' >> /var/log/3322.org && /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&hostname=yellowjim.3322.org' >> /var/log/3322
00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' >> /var/log/3322.org && /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&hostname=yellowjim.3322.org' >> /var/log/3322.org

PHP安装

zlib1g libpng
apt-get install php5-gd
dpkg -S file——这个文件属于哪个已安装软件包。
dpkg -L package——列出软件包中的所有文件。 
dpkg -L openssh-server
apt-get install apt-file
apt-file update
apt-file search filename
apt-file search filename | grep /bin/
PHP5 mcrypt
#mcrypt is not used anymore
apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev
#mcrypt not used in php7.3.0, alternative way applied and OK.
//sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
sudo php5enmod mcrypt
sudo service apache2 restart
20.04 apache-php
sudo apt-get install -y apache2
sudo apt-get install -y php
sudo apt-get install -y php-gd
sudo apt-get install -y php-mysqli
sudo apt-get install -y php-redis
sudo apt install -y php-curl
sudo apt install -y php-xml
sudo apt install -y php-mbstring
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY "xxx";
GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY "xxx";
sudo apt install mercurial

cron

cron命令
crontab -l
crontab -e
service cron restart
cron设置
* * * * *  cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron1.txt
* * * * * sleep 10; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron2.txt
#* * * * * sleep 20; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron3.txt
#* * * * * sleep 30; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron4.txt
#* * * * * sleep 40; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron5.txt
#* * * * * sleep 50; cd /home/www/testDanbing && /usr/bin/php /home/www/testDanbing/do_opmisc.php >>/home/www/testDanbing/cron6.txt

Easy RSA

basic
. ./vars
1850  ./clean-all
1851  ./build-ca
1852  ./build-key-server server
1855  ./build-key client01
1856  ./build-key client02
1857  ./build-key client03
1858  ./build-key client04
1859  ./build-key client05
1860  ./build-key client06
1861  ./build-key client07
1862  ./build-key client08
1863  ./build-key client09
1864  ./build-key client10
1865  ./build-key client00
/usr/share/doc/openvpn/examples/sample-config-files

OPENVPN

misc
ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252
ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162
route
Local Route:
route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway
route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway
Remote Route:
push "route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway"


./revoke-full client1
crl-verify crl.pem

KVM Install

Prepare
sudo apt-get update
sudo apt-get install -y linux-tools-$(uname -r)
egrep 'vmx|svm' /proc/cpuinfo
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
/sbin/sysctl -p
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.57.24
NETMASK=255.255.255.0
GATEWAY=172.16.57.1
DNS1=202.96.209.133
vim /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE=em1
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=yes
/etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
Install Software
yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c
sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer
sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c
Create VM
VM basic
virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /
--disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /
--cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /
--vnc --accelerate --autostart
--name    给虚拟机起个名字
--ram     分配给虚拟机的内存,单位MB
--vcpus   分配给虚拟机的cpu个数
--cdrom   指定安装文件的全路径
--disk    指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
   size    虚拟机文件大小,单位GB
   bus     虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio
   cache   虚拟机磁盘的cache类型
--network 
   bridge  指定桥接网卡
   model  网卡模式,这里也是使用性能更好的virtio
--graphics 图形参数
--boot  hd | cdrom
--autostart
ps aux | grep qemu | grep tomcat_01


virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 
--disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio 
--disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio 
--cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso 
--network bridge=br0,model=virtio 
--vnc --accelerate --force  --autostart
qemu-img create -f raw SQL100.1.sys.img 40G
qemu-img create -f raw SQL100.1.data.img 80G
VM 96/100
Creat With SYS Disk only:
sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \
--os-variant=ubuntu20.04 \
--disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \
--network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \
--network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \
--graphics vnc --accelerate --boot hd
Creat With SYS and Data Disks:
virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \
--os-variant=ubuntu20.04 \
--disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \
--disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \
--network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \
--network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \
--graphics vnc --accelerate --boot hd
Creat K8S With SYS and Data Disks:
sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \
--os-variant=ubuntu20.04  \
--disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \
--disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \
--network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \
--network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \
--graphics vnc --accelerate --boot hd


======= PassThrough USB ports: =======
Host:
# lsusb
...
Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One
#/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3
Maintain VM
virsh dumpxml tomcat_01 > tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中
virsh define tomcat_01.xml
qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘
virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘
virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config
virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config
virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img
sudo apt install libosinfo-bin
osinfo-query os
You can restart your domain by running:
 virsh --connect qemu:///system start BASE200.1.31.82
sudo apt install libguestfs-tools
sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh

Kubernete Setup

VM setup
sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd
qemu-img create -f raw K8S.node00.data.img 200G
qemu-img create -f raw K8S.node01.data.img 200G
sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd
sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd


virsh --connect qemu:///system start BASE200.1.31.52.k8s.master
sudo hostnamectl set-hostname k8s-master
sudo hostnamectl set-hostname k8s-node00
sudo hostnamectl set-hostname k8s-node01
INSTALL
docker
sudo apt update
sudo apt install docker.io
sudo tee /etc/docker/daemon.json << EOF
{-----BEGIN CERTIFICATE-----
EOF
sudo tee /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://ffvpn.net", "https://lk8iycdu.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
docker-compose
sudo apt install docker-compose-v2
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Docker Pods setup
$docker run -d \
 --name my-pod-infra \  # 基础容器名(模拟 Pod 名称)
 -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口(后续实例可复用)
 registry.k8s.io/pause:3.9
registry/mirror
/etc/docker/certs.d/ffvpn.net/ca.crt <--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem
/etc/docker/daemon.json
"registry-mirrors": ["https://lk8iycdu.mirror.aliyuncs.com"],
docker exec -it my-pod-nginx-1 /bin/s
docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2
docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2
docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2
sudo usermod -aG docker $USER
newgrp docker
[jim@k8s-master /etc/ssl/certs]
$sudo ln -s /home/jim/cert23.pem cert23.pem


[jim@ubuntu96 ~]
$sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2
$sudo docker ps
CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES
24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   "/entrypoint.sh /etc…"   4 days ago   Up 23 hours   0.0.0.0:443->5000/tcp, :::443->5000/tcp   registry
image operations
docker save -o myimages.tar image1:tag1 [image2:tag2]
sudo chown cloveropen:cloveropen myimages.tar
docker load -i myimage.tar | docker load < myimages.tar
openvpn/macvlan
sudo brctl stp br0 off
sudo sysctl -w net.ipv4.ip_forward=1 && sudo sysctl -p
sudo docker network create -d macvlan \
 --subnet=SUBNET \
 --gateway=GATEWAY \
 -o parent=PHY_IFACE \
 -o macvlan_mode=bridge  # 显式指定 bridge 模式
 my-macvlan-net
ping to host net:
sudo ip link add macvlan-shim link br0 type macvlan mode bridge
sudo ip addr add 192.168.1.200/24 dev macvlan-shim
sudo ip link set macvlan-shim up
sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP
kuberlete

Sys Conf

disk manage
vgs
lvs
vgdisplay -v ubuntu-vg
lvdisplay -v /dev/ubuntu-vg/ubuntu-lv
lvremove /dev/ubuntu-vg/lvol0
lvcreate -l 100 ubuntu-vg -n lv-0
lvextend -l +1000 /dev/ubuntu-vg/lv-0

mkfs -t ext4 /dev/ubuntu-vg/lv-0
g4u
iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022
iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082
iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2
iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175
31.96
export AUTOSSH_POLL=20 && autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com
iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22
ip rule add from 10.8.0.2 table 1
ip route add default via 10.8.0.1 table 1
31.80
ip route add 10.8.1.2/32 via 192.168.31.96
Jenkins
192.168.31.91: jim:6
sudo vi /etc/systemd/logind.conf
#HandleLidSwitch=suspend
HandleLidSwitch=ignore
sudo restart systemd-logind
Disk pm
sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024

20.04 rc.local

$ sudo vim /lib/systemd/system/rc-local.service

IPTABLES STATISTICS

iptables -N TRAFFIC_IN
iptables -N TRAFFIC_OUT
iptables -I FORWARD -i tun5 -j TRAFFIC_IN
iptables -I FORWARD -o tun5 -j TRAFFIC_OUT
iptables -A TRAFFIC_IN --src 10.8.5.6
iptables -A TRAFFIC_OUT --dst 10.8.5.6
iptables -L -nv
iptables -F TRAFFIC_IN
iptables -F TRAFFIC_OUT

Win10 WSL

Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11
Win + R: winver
wsl -l -o
wsl --set-default-version <Version#>, replacing <Version#> with either 1 or 2.
wsl --setdefault <DistributionName>
wsl --install -d Ubuntu-18.04


diskpart
>select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
>compact vdisk
>exit
wsl --list
wsl -l -v
wsl --list --online
wsl --terminate Ubuntu-18.04
wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar
wsl --unregister Ubuntu-18.04
wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar
/etc/wsl.conf:
[automount]
enabled = true
root = /mnt/
options = "metadata,uid=1000,gid=1000,umask=22,fmask=11"
mountFsTab = false
[user]
default = jim
meld crash issue:
sudo apt install gnome-icon-theme
sz rz:
zssh user@host
Ctrl+space to entery file transfer mode
1. sz file -> Ctrl + Space -> rz
2. Ctrl + Space -> sz file  ( file will autoly rz by remote host )
3. Ctrl + Space -> suspend  ( enter local shell )

PeiRate Formula

P : pei rate
W : weight
Fr: fee rate, 10%

Pi = Sum(Wn)/Wi;
Pj = Sum(Wn)/Wj;
Pk = Sum(Wn)/Wk;
PUi = (Pi - 1) * (1 - Fr) + 1
PUi = Pi * (1 - Fr)

zcjc_order:

  • usr_id
  • zcjc_id
  • pei_rate = PUi
  • peihaoN (order_num) 1~1000
  • price 100 coins/peihao
  • pei_sum = pei_rate * peihaoN * price

zcjc_Sub:

  • peihaoN += order.peihaoN
  • pei_sum += Pi * peihaoN * price
  • peihaoN_stored = @ > order.peihaoN ? -= peihaoN : All: peihaoN_stored += Wj;
  • peisum_stored = @ > pei_sum_i ? -= pei_sum_i : ~peisum_stored += pei_sum_i
  • Pi = peisum_stored -= pei_sum_i ? Pi * ( 1 - 10%) :
  • PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)
  • weight += Wi * (Pio - Pi)/Pio

Kubnet

kubectl get pods -A -o wide
kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2
kubectl exec -it frr2-0 /bin/bash -n frr2

ZCJC operations

ds zci init
ds zci update
ds zci fstart (act_finit and act_start, special for zci 5(sh000))
ds zci fupdate (act_fupdate act_done)
ds zci start

ds zci fstart 5
ds zci update 5 zci_playerB_points 3030
ds zci fupdate 5 3030


ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)

Wiki Demos

    1. abcd
    2. efgh
姓名 性别 年龄
jim M 30

mediawiki-1.22.5/skins/common/shared.css


姓名A 性别A 年龄A
jim M 30

Hello World.