-
PostgreSQL pg_dump pg_restore
dump and restore postgresql database
dump
#!/bin/bash if [ ! "$USER" == "postgres" ] ; then echo "user must be postgres" exit 1 fi PATH=$PATH:/srv/pgsql/bin touch /u04/export/in_progress for db in $(echo "select datname from pg_database where datname <>'template0'" | psql --no-align --quiet --tuples-only ); do mkdir -p "/u04/export/$db" echo "dump database $db..." backup_file="/u04/export/$db/pg_dump__${db}__$(date +%Y-%m-%d__%H-%M-%S)" pg_dump $db -Fd -f $backup_file && pg_dump $db -Fp --schema-only -f $backup_file/schema.sql if [[ $?==0 ]]; then echo "export to $backup_file success" else echo "export failed" fi done rm /u04/export/in_progress
restore
pg_restore -d test4 -Fd /u04/export/test4/pg_dump__test4__2025-08-21__11-43-18/ pg_restore -d test4 -Fd -a /u04/export/test4/pg_dump__test4__2025-08-21__11-43-18/ pg_restore -d test4 -Fd -t dt_fake_data -a /u04/export/test4/pg_dump__test4__2025-08-21__11-43-18/
-
access to hilink web interface from remote host
hilink usb dongle on remote host
remote host
sysctl -w net.ipv4.ip_forward=1 iptables -t nat -A PREROUTING --dst 10.10.10.22 -p tcp --dport 80 -j DNAT --to 192.168.8.1 iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
local host
sysctl -w net.ipv4.ip_forward=1 sysctl -w net.ipv4.conf.all.route_localnet=1 iptables -t nat -A OUTPUT -d 192.168.8.1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.10.22 iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE
-
apache rewrite without 301 redirect
/etc/apache2/conf.d/domaincheck.conf
AddDefaultCharset UTF-8 Alias /domainchecker "/srv/www/htdocs/domainchecker" <Location "/domainchecker"> DirectoryIndex index.php RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+[^/])$ $1/ [L] </Location> <Directory "/srv/www/htdocs/domainchecker"> DirectorySlash Off Options -Indexes +FollowSymLinks Require all granted </Directory>
-
modbus cli tcp, mbpoll and moodbus_cli
sinotimer
mbpoll phase A,B,C
zei0mucu:~$ mbpoll -a 8 -t 3:float -B -0 -r0,2,4 172.16.100.101 -1 -q -- Polling slave 8... [0]: 234.282 [2]: 234.666 [4]: 237.221
mbpoll phase A
zei0mucu:~$ mbpoll -a 8 -t 3:float -B -0 -r0 172.16.100.101 -1 -q -- Polling slave 8... [0]: 235.587
modbus_cli, voltage phase A,B,C
zei0mucu:~$ modbus -S 172.16.100.101 -s 8 i@0/f 236.30426025390625 zei0mucu:~$ modbus -S 172.16.100.101 -s 8 i@2/f 233.90081787109375 zei0mucu:~$ modbus -S 172.16.100.101 -s 8 i@4/f 237.7670135498047
relay
modbus_cli
on relay 1
zei0mucu:~$ modbus 127.0.0.1 -s 2 -v c@0=1 Parsed 0 registers definitions from 1 files → < 97 58 00 00 00 06 02 05 00 00 ff 00 > ← < 97 58 00 00 00 06 02 05 00 00 ff 00 > 12 bytes
off relay 2
zei0mucu:~$ modbus 127.0.0.1 -s 2 -v c@1=0 Parsed 0 registers definitions from 1 files → < fa 49 00 00 00 06 02 05 00 00 00 00 > ← < fa 49 00 00 00 06 02 05 00 00 00 00 > 12 bytes
status
zei0mucu:~$ modbus 127.0.0.1 -s 2 -v c@0/8B Parsed 0 registers definitions from 1 files → < bd 43 00 00 00 06 02 01 00 00 00 08 > ← < bd 43 00 00 00 04 02 01 01 00 > 10 bytes ← [0, 0, 0, 0, 0, 0, 0, 0] 0: 0 0x0
mbpoll
relay 1
zei0mucu:~$ mbpoll -a 2 -t 0 -0 -r0 127.0.0.1 -q -- 1 Written 1 references.
relay 2
zei0mucu:~$ mbpoll -a 2 -t 0 -0 -r1 127.0.0.1 -q -- 1 Written 1 references.
status
zei0mucu:~$ mbpoll -a 2 -t 0 -0 -r0 127.0.0.1 -q -1 -c8 -- Polling slave 2... [0]: 1 [1]: 1 [2]: 0 [3]: 0 [4]: 0 [5]: 0 [6]: 0 [7]: 0
-
Modbus-Rtu 2 Channel 7-24V Relay Module
install modbus command line tool
pip3 install modbus_cli
setup udev rules for usb QinHeng Electronics CH340 serial converter
#cat /etc/udev/rules.d/98-usb-serial.rules KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", OWNER="hass", GROUP="users", MODE="0660", SYMLINK+="rs485"
relay control
# 1 # on modbus -b 9600 -s 2 -v /dev/rs485 c@0=1 # off modbus -b 9600 -s 2 -v /dev/rs485 c@0=0 # status modbus -b 9600 -s 2 -v /dev/rs485 c@0/8B | egrep -o '\[.*\]' | tr -d '[,]' | cut -f1 -d' ' # 2 # on modbus -b 9600 -s 2 -v /dev/rs485 c@1=1 # off modbus -b 9600 -s 2 -v /dev/rs485 c@1=0 # status modbus -b 9600 -s 2 -v /dev/rs485 c@0/8B | egrep -o '\[.*\]' | tr -d '[,]' | cut -f2 -d' '