系统安装

From Danbing
Revision as of 14:39, 20 February 2024 by Jim (talk | contribs) (→‎VM 96/100)
Jump to navigation Jump to search

安装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
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
PassThrough USB ports:
Host:
# lsusb
...
Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One
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

Sys Conf

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.