+++ /dev/null
-#!/bin/sh
-set -x
-
-# network interfaces are:
-# eno1: port 1 of sysplanar NetXtreme II, used for internal host bond
-# eno2: port 2 of sysplanar NetXtreme II, used for internal container bond
-# eno3: port 3 of sysplanar NetXtreme II, used for external container bond
-# eno4: port 4 of sysplanar NetXtreme II, unused
-# ens2f0: port 0 of PCIe NetXtreme, used for internal host bond
-# ens2f1: port 1 of PCIe NetXtreme, used for internal container bond
-# ens2f2: port 2 of PCIe NetXtreme, used for external container bond
-# ens2f3: port 3 of PCIe NetXtreme, unused
-# enp0s29f0u2: IMM
-# enp0s29f7u6: Huawei E3372H-320 LTE USB modem
-# ens4: port 1 of Mellanox ConnectX-3 Pro, used for 10g network
-# ens4d1: port 2 of Mellanox ConnectX-3 Pro, unused
-
-
-INTERNAL_HOST_BOND_NAME=bondhi
-INTERNAL_HOST_BOND_DEVICE=${INTERNAL_HOST_BOND_NAME}-dev
-INTERNAL_HOST_BOND_SLAVE_1_NAME=${INTERNAL_HOST_BOND_NAME}-slave-1
-INTERNAL_HOST_BOND_SLAVE_1_DEVICE=eno1
-INTERNAL_HOST_BOND_SLAVE_2_NAME=${INTERNAL_HOST_BOND_NAME}-slave-2
-INTERNAL_HOST_BOND_SLAVE_2_DEVICE=ens2f0
-
-INTERNAL_CONTAINER_BOND_NAME=bondci
-INTERNAL_CONTAINER_BOND_DEVICE=${INTERNAL_CONTAINER_BOND_NAME}-dev
-INTERNAL_CONTAINER_BOND_SLAVE_1_NAME=${INTERNAL_CONTAINER_BOND_NAME}-slave-1
-INTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE=eno2
-INTERNAL_CONTAINER_BOND_SLAVE_2_NAME=${INTERNAL_CONTAINER_BOND_NAME}-slave-2
-INTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE=ens2f1
-
-INTERNAL_CONTAINER_BRIDGE_NAME=brci
-INTERNAL_CONTAINER_BRIDGE_DEVICE=${INTERNAL_CONTAINER_BRIDGE_NAME}-dev
-
-HOST_ONLY_CONTAINER_BRIDGE_NAME=brch
-HOST_ONLY_CONTAINER_BRIDGE_DEVICE=${HOST_ONLY_CONTAINER_BRIDGE_NAME}-dev
-
-EXTERNAL_CONTAINER_BOND_NAME=bondce
-EXTERNAL_CONTAINER_BOND_DEVICE=${EXTERNAL_CONTAINER_BOND_NAME}-dev
-EXTERNAL_CONTAINER_BOND_SLAVE_1_NAME=${EXTERNAL_CONTAINER_BOND_NAME}-slave-1
-EXTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE=eno3
-EXTERNAL_CONTAINER_BOND_SLAVE_2_NAME=${EXTERNAL_CONTAINER_BOND_NAME}-slave-2
-EXTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE=ens2f2
-
-EXTERNAL_CONTAINER_BRIDGE_NAME=brce
-EXTERNAL_CONTAINER_BRIDGE_DEVICE=${EXTERNAL_CONTAINER_BRIDGE_NAME}-dev
-
-TENG_CONNECTION_NAME=10g
-TENG_CONNECTION_DEVICE=ens4
-
-HUAWEI_CONNECTION_NAME=huawei
-HUAWEI_CONNECTION_DEVICE=enp0s29f7u6
-
-IMM_CONNECTION_NAME=imm
-IMM_CONNECTION_DEVICE=enp0s29f0u2
-
-
-CONNECTIONS=$(nmcli --terse connection show | wc -l)
-while [ $CONNECTIONS -gt 1 ]
-do
- CONNECTION_LINE=$(nmcli --terse connection show \
- | grep --invert-match '^lo:' | head -n 1)
- CONNECTION_UUID=$(echo $CONNECTION_LINE | cut -f 2 -d ':')
- nmcli connection delete uuid "$CONNECTION_UUID"
- CONNECTIONS=$(nmcli --terse connection show | wc -l)
-done
-
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_HOST_BOND_NAME \
- connection.interface-name $INTERNAL_HOST_BOND_DEVICE \
- connection.type bond \
- bond.options "mode=802.3ad,lacp_rate=fast,miimon=100,xmit_hash_policy=layer2+3" \
- ipv4.addresses "10.228.93.1/16" \
- ipv4.dns "10.228.109.159, 10.228.92.159" \
- ipv4.dns-search "in.useribm.hu" \
- ipv4.gateway "10.228.109.254" \
- ipv4.method "manual" \
- ipv4.route-metric "100" \
- ipv6.addresses "2001:1aa1:000a:7dae:e41f:13ff:febc:c320/64" \
- ipv6.dns "2001:1aa1:000a:7dae:000c:18ff:fe03:5c9f, 2001:1aa1:000a:7dae:000c:18ff:fe03:6d9f" \
- ipv6.dns-search "in.useribm.hu" \
- ipv6.gateway "2001:1aa1:000a:7dae:000c:18ff:fe03:6dfe" \
- ipv6.method "manual" \
- ipv6.route-metric "100" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_HOST_BOND_SLAVE_1_NAME \
- connection.interface-name $INTERNAL_HOST_BOND_SLAVE_1_DEVICE \
- connection.master $INTERNAL_HOST_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_HOST_BOND_SLAVE_2_NAME \
- connection.interface-name $INTERNAL_HOST_BOND_SLAVE_2_DEVICE \
- connection.master $INTERNAL_HOST_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BRIDGE_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.type bridge \
- ipv4.method "disabled" \
- ipv6.method "disabled" \
- bridge.stp no \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BOND_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BOND_DEVICE \
- connection.type bond \
- connection.master $INTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.slave-type bridge \
- bond.options "mode=802.3ad,lacp_rate=fast,miimon=100,xmit_hash_policy=layer2+3" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BOND_SLAVE_1_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE \
- connection.master $INTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BOND_SLAVE_2_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE \
- connection.master $INTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $HOST_ONLY_CONTAINER_BRIDGE_NAME \
- connection.interface-name $HOST_ONLY_CONTAINER_BRIDGE_DEVICE \
- connection.type bridge \
- ipv4.method "disabled" \
- ipv6.method "disabled" \
- bridge.stp no \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BRIDGE_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.type bridge \
- ipv4.method "disabled" \
- ipv6.method "disabled" \
- bridge.stp no \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BOND_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BOND_DEVICE \
- connection.type bond \
- connection.master $EXTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.slave-type bridge \
- bond.options "mode=active-backup,miimon=100" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BOND_SLAVE_1_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE \
- connection.master $EXTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BOND_SLAVE_2_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE \
- connection.master $EXTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $TENG_CONNECTION_NAME \
- connection.interface-name $TENG_CONNECTION_DEVICE \
- connection.type 802-3-ethernet \
- ipv4.addresses "172.24.107.1/24" \
- ipv4.method "manual" \
- ipv6.addresses "2001:1aa1:000a:006b:7cfe:90ff:febc:d320/64" \
- ipv6.dns "2001:1aa1:000a:7dae:000c:18ff:fe03:5c9f, 2001:1aa1:000a:7dae:000c:18ff:fe03:6d9f" \
- ipv6.dns-search "in.useribm.hu" \
- ipv6.method "manual" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $HUAWEI_CONNECTION_NAME \
- connection.interface-name $HUAWEI_CONNECTION_DEVICE \
- connection.type 802-3-ethernet \
- ipv4.method "auto" \
- ipv4.route-metric "1000" \
- ipv6.method "disabled" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $IMM_CONNECTION_NAME \
- connection.interface-name $IMM_CONNECTION_DEVICE \
- connection.type 802-3-ethernet \
- ipv4.method "auto" \
- ipv4.route-metric "2000" \
- ipv6.method "disabled" \
- save yes
+++ /dev/null
-#!/bin/sh
-
-
-echo "quorum:"
-echo "dnf install corosync-qnetd pcs"
-echo "pcs qdevice setup model net --enable --start"
-echo "pcs qdevice status net --full"
-echo
-echo "vhost1, vhost2:"
-echo "dnf install corosync-qdevice fence-agents-all pcs pacemaker"
-echo
-echo "quorum, vhost1, vhost2:"
-echo "systemctl start pcsd.service"
-echo "systemctl enable pcsd.service"
-echo
-echo "passwd hacluster (Passw@rd01)"
-echo "pcs host auth quorum.in.useribm.hu"
-echo "pcs host auth vhost1.in.useribm.hu"
-echo "pcs host auth vhost2.in.useribm.hu"
-echo
-echo "vhost1 only:"
-echo "[pcs cluster destroy --all]"
-echo 'pcs cluster setup lxc-cluster \'
-echo ' vhost1 addr=10.228.93.1 addr=172.24.107.1 \'
-echo ' vhost2 addr=10.228.93.2 addr=172.24.107.2'
-echo "pcs cluster start --all"
-echo "pcs cluster enable --all"
-echo
-echo "pcs quorum status"
-echo "pcs quorum device add model net host=quorum.in.useribm.hu algorithm=ffsplit"
-echo "pcs quorum status"
-echo
-echo "pcs property set maintenance-mode=true"
-echo
-echo 'pcs stonith create vhost1-fence fence_imm \'
-echo ' ip="vhost1imm.in.useribm.hu" \'
-echo ' pcmk_host_list="vhost1.in.useribm.hu" \'
-echo ' username="hacluster" password="Passw@rd01"'
-echo 'pcs constraint location vhost1-fence avoids vhost1'
-echo 'pcs stonith create vhost2-fence fence_imm \'
-echo ' ip="vhost2imm.in.useribm.hu" \'
-echo ' pcmk_host_list="vhost2.in.useribm.hu" \'
-echo ' username="hacluster" password="Passw@rd01"'
-echo 'pcs constraint location vhost2-fence avoids vhost2'
-echo "[fence_imm -a vhost1imm.in.useribm.hu -l hacluster -p Passw@rd01 -o status]"
-echo "[fence_imm -a vhost2imm.in.useribm.hu -l hacluster -p Passw@rd01 -o status]"
-echo
-#vi /etc/lvm/lvm.conf (on both sides!!!):
-# # Configuration option global/system_id_source.
-# system_id_source = "uname"
-#[lvm systemid; uname -n]
-#pvcreate /dev/mapper/<lxc pv>
-#vgcreate --setautoactivation n <lxc vg> /dev/mapper/<lxc pv>
-#[vgs -o+systemid]
-#lvcreate --size ...GiB --name <lxc lv> <lxc vg>
-#[lvs]
-#mkfs.ext4 -L <lxc fs> /dev/<lxc vg>/<lxc lv>
-#lvmdevices --adddev /dev/<lxc pv> (on both sides!!!)
-
-#pcs resource create lxc-lvm ocf:heartbeat:LVM-activate \
-# vgname=<lxc vg> vg_access_mode=system_id --group lxc-group
-echo 'pcs resource create lxc-fs ocf:heartbeat:Filesystem \'
-echo ' device="/dev/mapper/lxc" \'
-echo ' directory="/lxc" fstype="ext4" --group lxc-group'
-echo "pcs resource update lxc-fs op stop timeout=300s"
-echo "pcs resource create lxc-service systemd:lxc --group lxc-group"
-echo "pcs resource update lxc-service op start timeout=600s"
-echo "pcs resource update lxc-service op stop timeout=600s"
-echo
-echo "pcs property set maintenance-mode=false"
-#pcs resource unmanage lxc-service
-echo
-echo "pcs node standby <node>"
-echo "pcs node unstandby <node>"
-echo "pcs status"
-echo "pcs cluster status"
-echo "pcs quorum status"
-echo "pcs cluster config show"
-echo "pcs resource config <resource>"
-echo
-echo "pcs resource move <resource> <node>"
-echo "pcs constraint"
-echo "pcs resource clear <resource>"
+++ /dev/null
-#!/bin/sh
-
-
-hostnamectl set-hostname vhost1.in.useribm.hu
-timedatectl set-timezone Europe/Budapest
-
-dnf install \
- chrony \
- cronie \
- infiniband-diags \
- ipmitool \
- logrotate \
- lxc \
- lxc-templates \
- mailx \
- mercurial-py3 \
- opensm \
- postfix \
- rdma-core \
- rsyslog \
- screen \
- vim-enhanced \
- wget
-
-systemctl disable firewalld.service
-
-systemctl enable logrotate.timer
-systemctl enable lxc.service
-systemctl enable opensm.service
-systemctl enable rsyslog.service
-
-systemctl start logrotate.timer
-systemctl start lxc.service
-systemctl start opensm.service
-systemctl start rsyslog.service
-
-systemctl stop firewalld.service
+++ /dev/null
-lxc.lxcpath = /lxc/containers
+++ /dev/null
-# (Port) GUIDS queried by ibstat
-GUIDS="0x5849560e62c30201 0x5849560e62c30202"
-PRIORITY=15
+++ /dev/null
-#fs.inotify.max_queued_events = 16384
-# This is the default.
-
-fs.inotify.max_user_instances = 1024
-# The default is 128.
-
-#fs.inotify.max_user_watches = 8192
-# This is the default.
+++ /dev/null
-MODEM_IP="192.168.8.1"
-
-ZFELLEG_NUM="+36209541513"
-CSGULYAS_NUM="+36303744065"
-FSCHNELL_NUM="+36309502529"
-RRENDEK_NUM="+36309775888"
-MSZABO_NUM="+36704581234"
-
-AKOSZTOLANYI_NUM="+36205837539"
-TLEVAI_NUM="+36302976481"
-
-ZSSZALAI_NUM="+36309406111"
-
-
-HEARTBEAT_NUMS="$ZFELLEG_NUM $CSGULYAS_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-
-TEST_NUMS="$ZFELLEG_NUM"
-
-#TEXT_NUMS="$ZFELLEG_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-#TEXT_NUMS="$ZSSZALAI_NUM $ZFELLEG_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-TEXT_NUMS="$AKOSZTOLANYI_NUM $TLEVAI_NUM $ZSSZALAI_NUM $ZFELLEG_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-
-
-WARNING_THRESHOLD=25
-ERROR_THRESHOLD=30
-CRITICAL_THRESHOLD=35
-
-HOST_SERIAL=$(hostname | cut -c 6)
-IMM_FQDN="vhost${HOST_SERIAL}imm.in.useribm.hu"
+++ /dev/null
-#!/bin/sh
-
-
-SCRIPT_PATH=$(dirname $(realpath $0))
-SCRIPT_BASE=$(basename $(realpath $0) .sh)
-SCRIPT_CONFIG=$SCRIPT_PATH/${SCRIPT_BASE}.cfg
-SCRIPT_STOP=$SCRIPT_PATH/${SCRIPT_BASE}.stop
-SSH_KEYS_PATH=$SCRIPT_PATH/user-ssh
-
-
-source $SCRIPT_CONFIG
-
-
-delete_logs() {
- LOG_COUNT=$(ls /var/log/temperature-????????.log | wc -l)
- if [ $LOG_COUNT -gt 14 ]
- then
- FIRST_LOG=$(ls /var/log/temperature-????????.log | head -n 1)
- rm -f $FIRST_LOG
- fi
- LOG_COUNT=$(ls /var/log/temperature-script-????????.log | wc -l)
- if [ $LOG_COUNT -gt 14 ]
- then
- FIRST_LOG=$(ls /var/log/temperature-script-????????.log | head -n 1)
- rm -f $FIRST_LOG
- fi
- LOG_COUNT=$(ls /var/log/temperature-std???-????????.log | wc -l)
- if [ $LOG_COUNT -gt 14 ]
- then
- FIRST_LOG=$(ls /var/log/temperature-std???-????????.log | head -n 1)
- rm -f $FIRST_LOG
- fi
-}
-
-delete_mail() {
- echo 'delete (from "Cron Daemon")' | mail -N
-}
-
-delete_received_smses() {
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- # BoxType:
- # 1: received
- # 2: sent
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>" \
- http://$MODEM_IP/api/sms/sms-list \
- | grep '<Index>' \
- | while read LINE
- do
- INDEX=$(echo $LINE | sed 's|^.*<Index>\([0-9]*\)</Index>.*$|\1|')
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: delete_received_smses" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>$INDEX</Index></request>" \
- http://$MODEM_IP/api/sms/delete-sms >>/var/log/temperature-script-${PRG_DATE}.log
-
- touch $SCRIPT_STOP
- done
-}
-
-delete_sent_smses() {
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- # BoxType:
- # 1: received
- # 2: sent
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><BoxType>2</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>" \
- http://$MODEM_IP/api/sms/sms-list \
- | grep '<Index>' \
- | while read LINE
- do
- INDEX=$(echo $LINE | sed 's|^.*<Index>\([0-9]*\)</Index>.*$|\1|')
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: delete_sent_smses" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>$INDEX</Index></request>" \
- http://$MODEM_IP/api/sms/delete-sms >>/var/log/temperature-script-${PRG_DATE}.log
- done
-}
-
-log_temperature() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- echo "${STR_DATE}: ${MESSAGE_TYPE}: $TEMPERATURE" | tee -a /var/log/temperature-${PRG_DATE}.log
-}
-
-process_received_smses() {
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- # BoxType:
- # 1: received
- # 2: sent
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>" \
- http://$MODEM_IP/api/sms/sms-list \
- > /tmp/received_smses.txt
- grep -i '<Content>Stop</Content>' /tmp/received_smses.txt \
- | while read LINE
- do
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: process_received_smses" >>/var/log/temperature-script-${PRG_DATE}.log
- touch $SCRIPT_STOP
- done
-}
-
-send_heartbeat_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- if [ -f $SCRIPT_STOP ]
- then
- SEND_STATUS="does NOT"
- else
- SEND_STATUS="DOES"
- fi
- MESSAGE="$MESSAGE_PREFIX Heartbeat ${MESSAGE_TYPE}: temperature is ${TEMPERATURE}, the system $SEND_STATUS send SMSs."
- SMS_TARGETS=""
- for NUM in $HEARTBEAT_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_heartbeat_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-send_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- MESSAGE="$MESSAGE_PREFIX ${MESSAGE_TYPE}: temperature is $TEMPERATURE"
- SMS_TARGETS=""
- for NUM in $TEXT_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-send_stop_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- if [ ! -f $SCRIPT_STOP ]
- then
- return
- fi
- RECEIVED_SMS_COUNT=$(grep '<Count>' /tmp/received_smses.txt \
- | sed 's|^.*<Count>\([0-9]*\)</Count>.*$|\1|')
- if [ $RECEIVED_SMS_COUNT -lt 1 ]
- then
- return
- fi
- STOP_NUMBER=$(grep '<Phone>' /tmp/received_smses.txt \
- | sed 's/.*<Phone>\(.*\)<\/Phone>.*$/\1/')
- MESSAGE="$MESSAGE_PREFIX Stopped by ${STOP_NUMBER}, ${MESSAGE_TYPE}: temperature is ${TEMPERATURE}, the system does NOT send SMSs for the next 24 hours."
- SMS_TARGETS=""
- for NUM in $TEXT_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_stop_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-send_test_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- if [ -f $SCRIPT_STOP ]
- then
- SEND_STATUS="does NOT"
- else
- SEND_STATUS="DOES"
- fi
- MESSAGE="$MESSAGE_PREFIX Test ${MESSAGE_TYPE}: temperature is ${TEMPERATURE}, the system $SEND_STATUS send SMSs."
- SMS_TARGETS=""
- for NUM in $TEST_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_test_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-shutdown_hosts() {
- SEVERITY=$1
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "shutting down hosts at $SEVERITY" >>/var/log/temperature-script-${PRG_DATE}.log
- if [ $SEVERITY -le 1 ]
- then
- echo "shutting down store.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 store.in.useribm.hu poweroff
- echo "shutting down tsm.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 tsm.in.useribm.hu poweroff
- fi
- if [ $SEVERITY -gt 1 ]
- then
- echo "shutting down aiac922.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 aiac922.in.useribm.hu poweroff
- echo "shutting down store.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 store.in.useribm.hu poweroff
- echo "shutting down tsm.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 tsm.in.useribm.hu poweroff
- fi
-}
-
-
-IPMI_PROCESSES=$(ps -ef | grep [i]pmitool | wc -l)
-if [ $IPMI_PROCESSES -ne 0 ]
-then
- echo "$IPMI_PROCESSES ipmitool processes running, exiting." >&2
- exit 1
-fi
-
-TEMPERATURE=$(ipmitool -H $IMM_FQDN -I open -P pwd sensor get 'Ambient Temp' \
- | grep 'Sensor Reading' \
- | sed 's/^ Sensor Reading : \([^ ]*\) (+\/- .) degrees C$/\1/')
-
-MESSAGE_PREFIX="[$(hostname --short)]"
-MESSAGE_TYPE="Info"
-SEVERITY=0
-
-if [ $TEMPERATURE -ge $WARNING_THRESHOLD ]
-then
- MESSAGE_TYPE="Warning"
- SEVERITY=1
-fi
-
-if [ $TEMPERATURE -ge $ERROR_THRESHOLD ]
-then
- MESSAGE_TYPE="Error"
- SEVERITY=2
-fi
-
-if [ $TEMPERATURE -ge $CRITICAL_THRESHOLD ]
-then
- MESSAGE_TYPE="Critical"
- SEVERITY=3
-fi
-
-if [ "$1" == "test" ]
-then
- send_test_sms $MESSAGE_TYPE $TEMPERATURE
- exit 0
-fi
-
-log_temperature $MESSAGE_TYPE $TEMPERATURE
-
-if [ -f $SCRIPT_STOP ]
-then
- CURRENT_TS=$(date +%s)
- SCRIPT_STOP_TS=$(stat --format=%Y $SCRIPT_STOP)
- TS_DIFF=$(( $CURRENT_TS - $SCRIPT_STOP_TS ))
- if [ $TS_DIFF -gt 86400 ]
- then
- rm -f $SCRIPT_STOP
- fi
-fi
-
-DAY_HOUR_MINUTE=$(date "+%u%H%M")
-if [ "$DAY_HOUR_MINUTE" == "11000" ]
-then
- send_heartbeat_sms $MESSAGE_TYPE $TEMPERATURE
-fi
-
-if [ -f $SCRIPT_STOP ]
-then
- exit 0
-fi
-
-MINUTE_LASTDIGIT=$(date "+%M" | cut -c 2)
-case "$MINUTE_LASTDIGIT" in
- "1" | "3" | "5" | "7" | "9")
- PARITY=1
- ;;
- "0" | "2" | "4" | "6" | "8")
- PARITY=2
- ;;
-esac
-
-if [ "$PARITY" != "$HOST_SERIAL" ]
-then
- exit 0
-fi
-
-if [ $SEVERITY -gt 0 ]
-then
- shutdown_hosts $SEVERITY
- send_sms $MESSAGE_TYPE $TEMPERATURE
-fi
-delete_logs
-delete_mail
-process_received_smses
-send_stop_sms $MESSAGE_TYPE $TEMPERATURE
-delete_received_smses
-delete_sent_smses
+++ /dev/null
-#!/bin/sh
-set -x
-
-# network interfaces are:
-# eno1: port 1 of sysplanar NetXtreme II, used for internal host bond
-# eno2: port 2 of sysplanar NetXtreme II, used for internal container bond
-# eno3: port 3 of sysplanar NetXtreme II, used for external container bond
-# eno4: port 4 of sysplanar NetXtreme II, unused
-# ens2f0: port 0 of PCIe NetXtreme, used for internal host bond
-# ens2f1: port 1 of PCIe NetXtreme, used for internal container bond
-# ens2f2: port 2 of PCIe NetXtreme, used for external container bond
-# ens2f3: port 3 of PCIe NetXtreme, unused
-# enp0s29f0u2: IMM
-# enp0s29f7u6: Huawei E3372H-320 LTE USB modem
-# ens4: port 1 of Mellanox ConnectX-3 Pro, used for 10g network
-# ens4d1: port 2 of Mellanox ConnectX-3 Pro, unused
-
-
-INTERNAL_HOST_BOND_NAME=bondhi
-INTERNAL_HOST_BOND_DEVICE=${INTERNAL_HOST_BOND_NAME}-dev
-INTERNAL_HOST_BOND_SLAVE_1_NAME=${INTERNAL_HOST_BOND_NAME}-slave-1
-INTERNAL_HOST_BOND_SLAVE_1_DEVICE=eno1
-INTERNAL_HOST_BOND_SLAVE_2_NAME=${INTERNAL_HOST_BOND_NAME}-slave-2
-INTERNAL_HOST_BOND_SLAVE_2_DEVICE=ens2f0
-
-INTERNAL_CONTAINER_BOND_NAME=bondci
-INTERNAL_CONTAINER_BOND_DEVICE=${INTERNAL_CONTAINER_BOND_NAME}-dev
-INTERNAL_CONTAINER_BOND_SLAVE_1_NAME=${INTERNAL_CONTAINER_BOND_NAME}-slave-1
-INTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE=eno2
-INTERNAL_CONTAINER_BOND_SLAVE_2_NAME=${INTERNAL_CONTAINER_BOND_NAME}-slave-2
-INTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE=ens2f1
-
-INTERNAL_CONTAINER_BRIDGE_NAME=brci
-INTERNAL_CONTAINER_BRIDGE_DEVICE=${INTERNAL_CONTAINER_BRIDGE_NAME}-dev
-
-HOST_ONLY_CONTAINER_BRIDGE_NAME=brch
-HOST_ONLY_CONTAINER_BRIDGE_DEVICE=${HOST_ONLY_CONTAINER_BRIDGE_NAME}-dev
-
-EXTERNAL_CONTAINER_BOND_NAME=bondce
-EXTERNAL_CONTAINER_BOND_DEVICE=${EXTERNAL_CONTAINER_BOND_NAME}-dev
-EXTERNAL_CONTAINER_BOND_SLAVE_1_NAME=${EXTERNAL_CONTAINER_BOND_NAME}-slave-1
-EXTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE=eno3
-EXTERNAL_CONTAINER_BOND_SLAVE_2_NAME=${EXTERNAL_CONTAINER_BOND_NAME}-slave-2
-EXTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE=ens2f2
-
-EXTERNAL_CONTAINER_BRIDGE_NAME=brce
-EXTERNAL_CONTAINER_BRIDGE_DEVICE=${EXTERNAL_CONTAINER_BRIDGE_NAME}-dev
-
-TENG_CONNECTION_NAME=10g
-TENG_CONNECTION_DEVICE=ens4
-
-HUAWEI_CONNECTION_NAME=huawei
-HUAWEI_CONNECTION_DEVICE=enp0s29f7u6
-
-IMM_CONNECTION_NAME=imm
-IMM_CONNECTION_DEVICE=enp0s29f0u2
-
-
-CONNECTIONS=$(nmcli --terse connection show | wc -l)
-while [ $CONNECTIONS -gt 1 ]
-do
- CONNECTION_LINE=$(nmcli --terse connection show \
- | grep --invert-match '^lo:' | head -n 1)
- CONNECTION_UUID=$(echo $CONNECTION_LINE | cut -f 2 -d ':')
- nmcli connection delete uuid "$CONNECTION_UUID"
- CONNECTIONS=$(nmcli --terse connection show | wc -l)
-done
-
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_HOST_BOND_NAME \
- connection.interface-name $INTERNAL_HOST_BOND_DEVICE \
- connection.type bond \
- bond.options "mode=802.3ad,lacp_rate=fast,miimon=100,xmit_hash_policy=layer2+3" \
- ipv4.addresses "10.228.93.2/16" \
- ipv4.dns "10.228.109.159, 10.228.92.159" \
- ipv4.dns-search "in.useribm.hu" \
- ipv4.gateway "10.228.109.254" \
- ipv4.method "manual" \
- ipv4.route-metric "100" \
- ipv6.addresses "2001:1aa1:000a:7dae:e41f:13ff:febc:e0d0/64" \
- ipv6.dns "2001:1aa1:000a:7dae:000c:18ff:fe03:5c9f, 2001:1aa1:000a:7dae:000c:18ff:fe03:6d9f" \
- ipv6.dns-search "in.useribm.hu" \
- ipv6.gateway "2001:1aa1:000a:7dae:000c:18ff:fe03:6dfe" \
- ipv6.method "manual" \
- ipv6.route-metric "100" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_HOST_BOND_SLAVE_1_NAME \
- connection.interface-name $INTERNAL_HOST_BOND_SLAVE_1_DEVICE \
- connection.master $INTERNAL_HOST_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_HOST_BOND_SLAVE_2_NAME \
- connection.interface-name $INTERNAL_HOST_BOND_SLAVE_2_DEVICE \
- connection.master $INTERNAL_HOST_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BRIDGE_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.type bridge \
- ipv4.method "disabled" \
- ipv6.method "disabled" \
- bridge.stp no \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BOND_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BOND_DEVICE \
- connection.type bond \
- connection.master $INTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.slave-type bridge \
- bond.options "mode=802.3ad,lacp_rate=fast,miimon=100,xmit_hash_policy=layer2+3" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BOND_SLAVE_1_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE \
- connection.master $INTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $INTERNAL_CONTAINER_BOND_SLAVE_2_NAME \
- connection.interface-name $INTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE \
- connection.master $INTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $HOST_ONLY_CONTAINER_BRIDGE_NAME \
- connection.interface-name $HOST_ONLY_CONTAINER_BRIDGE_DEVICE \
- connection.type bridge \
- ipv4.method "disabled" \
- ipv6.method "disabled" \
- bridge.stp no \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BRIDGE_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.type bridge \
- ipv4.method "disabled" \
- ipv6.method "disabled" \
- bridge.stp no \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BOND_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BOND_DEVICE \
- connection.type bond \
- connection.master $EXTERNAL_CONTAINER_BRIDGE_DEVICE \
- connection.slave-type bridge \
- bond.options "mode=active-backup,miimon=100" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BOND_SLAVE_1_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BOND_SLAVE_1_DEVICE \
- connection.master $EXTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $EXTERNAL_CONTAINER_BOND_SLAVE_2_NAME \
- connection.interface-name $EXTERNAL_CONTAINER_BOND_SLAVE_2_DEVICE \
- connection.master $EXTERNAL_CONTAINER_BOND_DEVICE \
- connection.slave-type bond \
- connection.type 802-3-ethernet \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $TENG_CONNECTION_NAME \
- connection.interface-name $TENG_CONNECTION_DEVICE \
- connection.type 802-3-ethernet \
- ipv4.addresses "172.24.107.2/24" \
- ipv4.method "manual" \
- ipv6.addresses "2001:1aa1:000a:006b:e41d:2dff:feb9:7170/64" \
- ipv6.dns "2001:1aa1:000a:7dae:000c:18ff:fe03:5c9f, 2001:1aa1:000a:7dae:000c:18ff:fe03:6d9f" \
- ipv6.dns-search "in.useribm.hu" \
- ipv6.method "manual" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $HUAWEI_CONNECTION_NAME \
- connection.interface-name $HUAWEI_CONNECTION_DEVICE \
- connection.type 802-3-ethernet \
- ipv4.method "auto" \
- ipv4.route-metric "1000" \
- ipv6.method "disabled" \
- save yes
-
-nmcli connection add \
- connection.autoconnect yes \
- connection.id $IMM_CONNECTION_NAME \
- connection.interface-name $IMM_CONNECTION_DEVICE \
- connection.type 802-3-ethernet \
- ipv4.method "auto" \
- ipv4.route-metric "2000" \
- ipv6.method "disabled" \
- save yes
+++ /dev/null
-#!/bin/sh
-
-
-hostnamectl set-hostname vhost2.in.useribm.hu
-timedatectl set-timezone Europe/Budapest
-
-dnf install \
- chrony \
- cronie \
- infiniband-diags \
- ipmitool \
- logrotate \
- lxc \
- lxc-templates \
- mailx \
- mercurial-py3 \
- opensm \
- postfix \
- rdma-core \
- rsyslog \
- screen \
- vim-enhanced \
- wget
-
-systemctl disable firewalld.service
-
-systemctl enable logrotate.timer
-systemctl enable lxc.service
-systemctl enable opensm.service
-systemctl enable rsyslog.service
-
-systemctl start logrotate.timer
-systemctl start lxc.service
-systemctl start opensm.service
-systemctl start rsyslog.service
-
-systemctl stop firewalld.service
+++ /dev/null
-lxc.lxcpath = /lxc/containers
+++ /dev/null
-# (Port) GUIDS queried by ibstat
-GUIDS="0x5849560e62c30901 0x5849560e62c30902"
-PRIORITY=0
+++ /dev/null
-#fs.inotify.max_queued_events = 16384
-# This is the default.
-
-fs.inotify.max_user_instances = 1024
-# The default is 128.
-
-#fs.inotify.max_user_watches = 8192
-# This is the default.
+++ /dev/null
-MODEM_IP="192.168.8.1"
-
-ZFELLEG_NUM="+36209541513"
-CSGULYAS_NUM="+36303744065"
-FSCHNELL_NUM="+36309502529"
-RRENDEK_NUM="+36309775888"
-MSZABO_NUM="+36704581234"
-
-AKOSZTOLANYI_NUM="+36205837539"
-TLEVAI_NUM="+36302976481"
-
-ZSSZALAI_NUM="+36309406111"
-
-
-HEARTBEAT_NUMS="$ZFELLEG_NUM $CSGULYAS_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-
-TEST_NUMS="$ZFELLEG_NUM"
-
-#TEXT_NUMS="$ZFELLEG_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-#TEXT_NUMS="$ZSSZALAI_NUM $ZFELLEG_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-TEXT_NUMS="$AKOSZTOLANYI_NUM $TLEVAI_NUM $ZSSZALAI_NUM $ZFELLEG_NUM $FSCHNELL_NUM $RRENDEK_NUM $MSZABO_NUM"
-
-
-WARNING_THRESHOLD=25
-ERROR_THRESHOLD=30
-CRITICAL_THRESHOLD=35
-
-HOST_SERIAL=$(hostname | cut -c 6)
-IMM_FQDN="vhost${HOST_SERIAL}imm.in.useribm.hu"
+++ /dev/null
-#!/bin/sh
-
-
-SCRIPT_PATH=$(dirname $(realpath $0))
-SCRIPT_BASE=$(basename $(realpath $0) .sh)
-SCRIPT_CONFIG=$SCRIPT_PATH/${SCRIPT_BASE}.cfg
-SCRIPT_STOP=$SCRIPT_PATH/${SCRIPT_BASE}.stop
-SSH_KEYS_PATH=$SCRIPT_PATH/user-ssh
-
-
-source $SCRIPT_CONFIG
-
-
-delete_logs() {
- LOG_COUNT=$(ls /var/log/temperature-????????.log | wc -l)
- if [ $LOG_COUNT -gt 14 ]
- then
- FIRST_LOG=$(ls /var/log/temperature-????????.log | head -n 1)
- rm -f $FIRST_LOG
- fi
- LOG_COUNT=$(ls /var/log/temperature-script-????????.log | wc -l)
- if [ $LOG_COUNT -gt 14 ]
- then
- FIRST_LOG=$(ls /var/log/temperature-script-????????.log | head -n 1)
- rm -f $FIRST_LOG
- fi
- LOG_COUNT=$(ls /var/log/temperature-std???-????????.log | wc -l)
- if [ $LOG_COUNT -gt 14 ]
- then
- FIRST_LOG=$(ls /var/log/temperature-std???-????????.log | head -n 1)
- rm -f $FIRST_LOG
- fi
-}
-
-delete_mail() {
- echo 'delete (from "Cron Daemon")' | mail -N
-}
-
-delete_received_smses() {
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- # BoxType:
- # 1: received
- # 2: sent
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>" \
- http://$MODEM_IP/api/sms/sms-list \
- | grep '<Index>' \
- | while read LINE
- do
- INDEX=$(echo $LINE | sed 's|^.*<Index>\([0-9]*\)</Index>.*$|\1|')
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: delete_received_smses" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>$INDEX</Index></request>" \
- http://$MODEM_IP/api/sms/delete-sms >>/var/log/temperature-script-${PRG_DATE}.log
-
- touch $SCRIPT_STOP
- done
-}
-
-delete_sent_smses() {
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- # BoxType:
- # 1: received
- # 2: sent
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><BoxType>2</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>" \
- http://$MODEM_IP/api/sms/sms-list \
- | grep '<Index>' \
- | while read LINE
- do
- INDEX=$(echo $LINE | sed 's|^.*<Index>\([0-9]*\)</Index>.*$|\1|')
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: delete_sent_smses" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>$INDEX</Index></request>" \
- http://$MODEM_IP/api/sms/delete-sms >>/var/log/temperature-script-${PRG_DATE}.log
- done
-}
-
-log_temperature() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- echo "${STR_DATE}: ${MESSAGE_TYPE}: $TEMPERATURE" | tee -a /var/log/temperature-${PRG_DATE}.log
-}
-
-process_received_smses() {
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- # BoxType:
- # 1: received
- # 2: sent
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><PageIndex>1</PageIndex><ReadCount>20</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>" \
- http://$MODEM_IP/api/sms/sms-list \
- > /tmp/received_smses.txt
- grep -i '<Content>Stop</Content>' /tmp/received_smses.txt \
- | while read LINE
- do
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: process_received_smses" >>/var/log/temperature-script-${PRG_DATE}.log
- touch $SCRIPT_STOP
- done
-}
-
-send_heartbeat_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- if [ -f $SCRIPT_STOP ]
- then
- SEND_STATUS="does NOT"
- else
- SEND_STATUS="DOES"
- fi
- MESSAGE="$MESSAGE_PREFIX Heartbeat ${MESSAGE_TYPE}: temperature is ${TEMPERATURE}, the system $SEND_STATUS send SMSs."
- SMS_TARGETS=""
- for NUM in $HEARTBEAT_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_heartbeat_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-send_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- MESSAGE="$MESSAGE_PREFIX ${MESSAGE_TYPE}: temperature is $TEMPERATURE"
- SMS_TARGETS=""
- for NUM in $TEXT_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-send_stop_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- if [ ! -f $SCRIPT_STOP ]
- then
- return
- fi
- RECEIVED_SMS_COUNT=$(grep '<Count>' /tmp/received_smses.txt \
- | sed 's|^.*<Count>\([0-9]*\)</Count>.*$|\1|')
- if [ $RECEIVED_SMS_COUNT -lt 1 ]
- then
- return
- fi
- STOP_NUMBER=$(grep '<Phone>' /tmp/received_smses.txt \
- | sed 's/.*<Phone>\(.*\)<\/Phone>.*$/\1/')
- MESSAGE="$MESSAGE_PREFIX Stopped by ${STOP_NUMBER}, ${MESSAGE_TYPE}: temperature is ${TEMPERATURE}, the system does NOT send SMSs for the next 24 hours."
- SMS_TARGETS=""
- for NUM in $TEXT_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_stop_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-send_test_sms() {
- MESSAGE_TYPE=$1
- TEMPERATURE=$2
- PRG_DATE=$(date +%Y%m%d)
- STR_DATE=$(LC_TIME=C.UTF-8 date)
-
-
- if [ -f $SCRIPT_STOP ]
- then
- SEND_STATUS="does NOT"
- else
- SEND_STATUS="DOES"
- fi
- MESSAGE="$MESSAGE_PREFIX Test ${MESSAGE_TYPE}: temperature is ${TEMPERATURE}, the system $SEND_STATUS send SMSs."
- SMS_TARGETS=""
- for NUM in $TEST_NUMS
- do
- SMS_TARGETS="${SMS_TARGETS}<Phone>${NUM}</Phone>"
- done
-
- curl --output /tmp/ses_tok.xml \
- --request GET \
- --silent \
- "http://$MODEM_IP/api/webserver/SesTokInfo"
-
- SESSION_ID=$(sed 's|^.*<SesInfo>\(.*\)</SesInfo>.*$|\1|' </tmp/ses_tok.xml)
- TOKEN=$(sed 's|^.*<TokInfo>\(.*\)</TokInfo>.*$|\1|' </tmp/ses_tok.xml)
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "${STR_DATE}: send_test_sms" >>/var/log/temperature-script-${PRG_DATE}.log
- curl --header "Cookie: $SESSION_ID" \
- --header "__RequestVerificationToken: $TOKEN" \
- --request POST \
- --silent \
- --data "<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones>${SMS_TARGETS}</Phones><Sca></Sca><Content>${MESSAGE}</Content><Length>-1</Length><Reserved>1</Reserved><Date>-1</Date></request>" \
- http://$MODEM_IP/api/sms/send-sms >>/var/log/temperature-script-${PRG_DATE}.log
-}
-
-shutdown_hosts() {
- SEVERITY=$1
-
- echo "----------------" >>/var/log/temperature-script-${PRG_DATE}.log
- echo "shutting down hosts at $SEVERITY" >>/var/log/temperature-script-${PRG_DATE}.log
- if [ $SEVERITY -le 1 ]
- then
- echo "shutting down store.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 store.in.useribm.hu poweroff
- echo "shutting down tsm.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 tsm.in.useribm.hu poweroff
- fi
- if [ $SEVERITY -gt 1 ]
- then
- echo "shutting down aiac922.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 aiac922.in.useribm.hu poweroff
- echo "shutting down store.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 store.in.useribm.hu poweroff
- echo "shutting down tsm.in.useribm.hu" >>/var/log/temperature-script-${PRG_DATE}.log
- ssh -i $SSH_KEYS_PATH/scripts -l root -o ConnectTimeout=1 tsm.in.useribm.hu poweroff
- fi
-}
-
-
-IPMI_PROCESSES=$(ps -ef | grep [i]pmitool | wc -l)
-if [ $IPMI_PROCESSES -ne 0 ]
-then
- echo "$IPMI_PROCESSES ipmitool processes running, exiting." >&2
- exit 1
-fi
-
-TEMPERATURE=$(ipmitool -H $IMM_FQDN -I open -P pwd sensor get 'Ambient Temp' \
- | grep 'Sensor Reading' \
- | sed 's/^ Sensor Reading : \([^ ]*\) (+\/- .) degrees C$/\1/')
-
-MESSAGE_PREFIX="[$(hostname --short)]"
-MESSAGE_TYPE="Info"
-SEVERITY=0
-
-if [ $TEMPERATURE -ge $WARNING_THRESHOLD ]
-then
- MESSAGE_TYPE="Warning"
- SEVERITY=1
-fi
-
-if [ $TEMPERATURE -ge $ERROR_THRESHOLD ]
-then
- MESSAGE_TYPE="Error"
- SEVERITY=2
-fi
-
-if [ $TEMPERATURE -ge $CRITICAL_THRESHOLD ]
-then
- MESSAGE_TYPE="Critical"
- SEVERITY=3
-fi
-
-if [ "$1" == "test" ]
-then
- send_test_sms $MESSAGE_TYPE $TEMPERATURE
- exit 0
-fi
-
-log_temperature $MESSAGE_TYPE $TEMPERATURE
-
-if [ -f $SCRIPT_STOP ]
-then
- CURRENT_TS=$(date +%s)
- SCRIPT_STOP_TS=$(stat --format=%Y $SCRIPT_STOP)
- TS_DIFF=$(( $CURRENT_TS - $SCRIPT_STOP_TS ))
- if [ $TS_DIFF -gt 86400 ]
- then
- rm -f $SCRIPT_STOP
- fi
-fi
-
-DAY_HOUR_MINUTE=$(date "+%u%H%M")
-if [ "$DAY_HOUR_MINUTE" == "11000" ]
-then
- send_heartbeat_sms $MESSAGE_TYPE $TEMPERATURE
-fi
-
-if [ -f $SCRIPT_STOP ]
-then
- exit 0
-fi
-
-MINUTE_LASTDIGIT=$(date "+%M" | cut -c 2)
-case "$MINUTE_LASTDIGIT" in
- "1" | "3" | "5" | "7" | "9")
- PARITY=1
- ;;
- "0" | "2" | "4" | "6" | "8")
- PARITY=2
- ;;
-esac
-
-if [ "$PARITY" != "$HOST_SERIAL" ]
-then
- exit 0
-fi
-
-if [ $SEVERITY -gt 0 ]
-then
- shutdown_hosts $SEVERITY
- send_sms $MESSAGE_TYPE $TEMPERATURE
-fi
-delete_logs
-delete_mail
-process_received_smses
-send_stop_sms $MESSAGE_TYPE $TEMPERATURE
-delete_received_smses
-delete_sent_smses