Tampilkan postingan dengan label bash script. Tampilkan semua postingan
Tampilkan postingan dengan label bash script. Tampilkan semua postingan

Kamis, 26 Desember 2024

ETCD Fixing - NoSpace

Bash Script Fixing ETCD No Space

#!/bin/bash

CA=/opt/apps/certificate/ca.pem

CRT=/opt/apps/certificate/postgres.pem

KEY=/opt/apps/certificate/postgres-key.pem

DATE=`date +%Y%m%d`

HOST_1=192.168.56.11

HOST_2=192.168.56.12

HOST_3=192.168.56.13

DIR=/opt/apps/etcd/backup/

 

echo "----------Start Backup ETCD----------"

etcdctl snapshot save /opt/apps/etcd/backup/${DATE}_etcd.db --endpoints=https://$HOST_1:2379 --cacert=$CA --cert=$CRT --key=$KEY

echo "----------End Backup ETCD----------"

 

 

 

echo "----------Start Compact ETCD----------"

#obtain the latest revision to compact

#REVISION=`etcdctl endpoint status --write-out=json --endpoints=https://$HOST_2:2379 --cacert=$CA --cert=$CRT --key=$KEY | egrep -o '"revision":[0-9]*' | egrep -o '[0-9]*'`

 

REVISION=`etcdctl endpoint status --write-out=json --endpoints=https://192.168.56.11:2379 --cacert=/opt/apps/certificate/ca.pem --cert=/opt/apps/certificate/postgres.pem --key=/opt/apps/certificate/postgres-key.pem | egrep -o '"revision":[0-9]*' | egrep -o '[0-9]*'`

 

#check etcd status snapshot

etcdutl --write-out=table snapshot status /opt/apps/etcd/backup/${DATE}_etcd.db

 

etcdctl compact $REVISION --endpoints=https://$HOST_1:2379 --cacert=$CA --cert=$CRT --key=$KEY

echo "----------End Compact Etcd----------"

 

 

 

echo "----------Start Fixing Error : NOSPACE----------"

#Defrag-Disarm

etcdctl --endpoints=https://192.168.56.11:2379,https://192.168.56.12:2379,https://192.168.56.13:2379 --cacert=$CA --cert=$CRT --key=$KEY --command-timeout=120s defrag

etcdctl --endpoints=https://192.168.56.11:2379,https://192.168.56.12:2379,https://192.168.56.13:2379 --cacert=$CA --cert=$CRT --key=$KEY --command-timeout=120s alarm disarm

echo "----------End Fixing Error : NOSPACE----------"

 

 

 

echo "----------Start remove OLD backup db ETCD----------"

#remove backup after 15 days

find ${DIR} -type f -iname "*.db" -mtime +14 -exec rm {} \;

echo "----------End remove OLD backup db ETCD----------"

 

Senin, 09 Desember 2024

Cheat Linux Administrator

DATABASE POSTGRES

1. Login Postgres
psql -U user_database -h ip_address_database -d nama_database -p port_database

2. Grant CONNECT to the database:
GRANT CONNECT ON DATABASE database_name TO username;

3. Grant USAGE on schema:
GRANT USAGE ON SCHEMA schema_name TO username;

4. Grant on all tables for DML statements: SELECT, INSERT, UPDATE, DELETE:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA schema_name TO username;

5. Grant all privileges on all tables in the schema:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO username;

6. Grant all privileges on all sequences in the schema:
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA schema_name TO username;

7. Grant all privileges on the database:
GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

8. Grant permission to create database:
ALTER USER username CREATEDB;

9. Make a user superuser:
ALTER USER myuser WITH SUPERUSER;

10. Remove superuser status:
ALTER USER username WITH NOSUPERUSER;

11. Pengecekan jumlah user konek
Select usename, count(1) as jml FROM pg_stat_activity group by usename order by jml desc;

12. Pengecekan user aktif
Select usename, count(1) as jml FROM pg_stat_activity where state not like '%idle%' group by usename order by jml desc;

13. Pengecekan aktivity user postgres
SELECT * FROM pg_stat_activity where usename='postgres' ;

14. Kill user aktif
SELECT pg_terminate_backend(pid) FROM pg_stat_activity where usename='postgres;

15. Pengecekan query lebih dari 7 menit (bisa disesuaikan interval waktunya)
Select * FROM pg_stat_activity WHERE pid <> pg_backend_pid() And state not in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled') and usename != 'replicate' And (now() - pg_stat_activity.query_start) > interval '7 minutes' order by query_start;

16. PENGECEKAN QUERY sedang Menjalankan query apa
SELECT * FROM pg_stat_activity where usename='postgres' ;

17. Pengecekan DEADLOCK dan BLOCK database
select  blocked_locks.pid AS blocked_pid,
blocked_activity.usename AS blocked_user,
blocking_locks.pid AS blocking_pid,
blocking_activity.usename AS blocking_user,
blocked_activity.query AS blocked_statement,
blocking_activity.query AS current_statement_in_blocking_process,
blocked_activity.application_name  AS blocked_application,
blocking_activity.application_name AS blocking_application
FROM    pg_catalog.pg_locks blocked_locks
inner JOIN pg_catalog.pg_stat_activity  blocked_activity on  blocked_activity.pid  =   blocked_locks.pid
inner JOIN pg_catalog.pg_locks blocking_locks      on  blocking_locks.locktype =   blocked_locks.locktype
AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE
AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
AND blocking_locks.objsubid  IS NOT DISTINCT FROM blocked_locks.objsubid
AND blocking_locks.pid !=  blocked_locks.pid
INNER JOIN pg_catalog.pg_stat_activity  blocking_activity  ON  blocking_activity.pid   =   blocking_locks.pid
WHERE   NOT blocked_locks.GRANTED;

18. 

DATABASE MYSQL

LINUX
---Network---

nmcli connection show -a

nmcli device status

nmcli connection modify enp0s8 IPv4.method manual (make static)

nmcli connection modify ens18 IPv4.address 10.0.2.27/24

nmcli connection modify ens18 IPv4.gateway 10.0.2.11

nmcli connection modify ens18 IPv4.dns 8.8.8.8


---Compres/Ekstrak---

---Compress---

tar -cvf nama_file.tar file1 file2 file3

tar -zcvf nama.tar.gz nama_folder/file

tar -jcf nama.tar.bz2 nama_folder/file

zip nama_file.zip file1 file2 file3

zip -r nama_folder.zip folder_name

gzip nama_file

gzip -9 nama_file  (terrdapat level1-9 | level 1 compress file cepat hasil besar | level 9 proses compress lama hasil compres kecil)

gzip -c nama_file > nama_file.gz  (mempertahankan file asli)

 

 

---Ekstrak--

tar -xvf nama_file.tar

tar -xzvf nama_file.tar.gz

tar -xjvf nama_file.tar.bz2

unzip nama_file.zip

gunzip nama_file.gz


---Find---

find /home/yys  -mtime +20

find /home/yys -type f -iname "*.tar.gz" -mtime +4

grep -i 'panda' nama_file.txt   # mencari string dengan kata kunci panda, -i opsi untuk cari string baik kapital atau kecil

grep -i 'panda' -A3 -B3 nama_file.txt  #A3 menampilkan 3 baris setelahnya, B3 menampilkan 3 baris sebelumnya

grep -i 'panda\|singa\|zebra' nama_file.txt   # mencari string dengan kata kunci panda singa zebra pada file name_file.txt

#find kecuali

find /var/log/ -type f -iname "messages-*" ! -iname "messages*.gz"


#find kecuali dan gzip file dengan  file yang dimodifikasi lebih dari 1hari lalu

find /var/log/ -type f -iname "messages-*" ! -iname "messages*.gz" -mtime +1 -exec gzip -v9 {} \;


find /home/yys -type f -iname "*csv.gz" -mtime +10 -exec rm {} \;

find /home/yys -type f -iname "*csv.gz" -mtime +10 | wc -l

find /home/yys -type f -iname "*csv.gz" -mtime +10 | sort -rh

find Downloads -type f -mtime +30 -printf "%T@\t%Tc %6k MiB %p\n" | sort -n | cut -f 2- | head -n10


#mengambil pid dengan kata kunci jar

pgrep -f .jar


#cari dan kill

kill -9 $(pgrep -f .jar)

#cara search dan edit menggunakan sed, cari 172.27.27.5 dan ganti atau edit dengan 127.0.0.1
sed -i 's|172.27.27.5|127.0.0.1|' /var/lib/pgsql/12/backups/scripts/grant_db_transaction_data.sh


DOCKER/CONTAINER

KUBERNETES

Sabtu, 21 September 2024

Bash Script Backup Database Postgresql

Script Backup Full Database 

#!/bin/bash

PATH_FILE=/var/lib/pgsql/12/backups #sesuaikan directory, testing menggunakan postgres12 di linux rhel

LOG_PATH=/var/lib/pgsql/12/backups #sesuaikan directory, testing menggunakan postgres12 di linux rhel

DATE=`date +%Y%m%d`

export PGPASSWORD=password_akses_postgres

 

echo START `date` >> ${LOG_PATH}/backup_full_one_day.log

pg_dumpall -U postgres -h 127.0.0.1 -p 5432 -v --roles-only -f ${PATH_FILE}/full_backup/"all_roles_db_${DATE}_dc1.sql" 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

 

echo START BACKUP Schema database_A `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -s database_A | gzip -9 > ${PATH_FILE}/full_backup/database_A_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -a database_A | gzip -9 > ${PATH_FILE}/full_backup/database_A_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

echo DONE BACKUP Schema database_A `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

 

echo START BACKUP Schema database_B `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -s database_B | gzip -9 > ${PATH_FILE}/full_backup/database_B_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -a database_B | gzip -9 > ${PATH_FILE}/full_backup/database_B_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

echo DONE BACKUP Schema database_B `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

 

echo START BACKUP Schema database_C `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -s database_C | gzip -9 > ${PATH_FILE}/full_backup/database_C_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -a database_C | gzip -9 > ${PATH_FILE}/full_backup/database_C_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

echo DONE BACKUP Schema database_C`date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

 

echo START BACKUP Schema database_D `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -s database_D | gzip -9 > ${PATH_FILE}/full_backup/database_D_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -a database_D | gzip -9 > ${PATH_FILE}/full_backup/database_D_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

echo DONE BACKUP Schema database_D `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

 

echo START BACKUP Schema database_E `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -s database_E | gzip -9 > ${PATH_FILE}/full_backup/database_E_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log.log 2>&1

pg_dump -U postgres -h 127.0.0.1 -p 5432 -a database_E | gzip -9 > ${PATH_FILE}/full_backup/database_E_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full_one_day.log 2>&1

echo DONE BACKUP Schema database_E `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

 

cd ${PATH_FILE}/full_backup

gzip -9 all_roles_db_${DATE}_dc1.sql

 

echo END `date` >> ${LOG_PATH}/backup_full_one_day.log 2>&1

find ${PATH_FILE}/full_backup -type f -iname "*.sql.gz" -mtime +2 -exec rm {} \; #menyisakan backup 2 hari

 

echo ======================================================================================================================= >> ${LOG_PATH}/backup_full_one_day.log



Script Backup Database per Schema

#!/bin/bash

PATH_FILE=/var/lib/pgsql/12/backups

LOG_PATH=/var/lib/pgsql/12/backups

DATE=`date +%Y%m%d`

export PGPASSWORD=password_login_postgres

 

 

echo ======================================================================================================================= >> ${LOG_PATH}/backup_full.log

echo START `date` >> ${LOG_PATH}/backup_full.log

 

echo START BACKUP Schema NAMA_DATABASE `date` >> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=public -s NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_public_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA -s NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_2 -s NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_2_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_3 -s NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_3_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_4 -s NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_4_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_5 -s NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_5_${DATE}_dc1_schema.sql.gz 2>> ${LOG_PATH}/backup_full.log

echo END BACKUP Schema NAMA_DATABASE `date` >> ${LOG_PATH}/backup_full.log

 

echo START BACKUP Data NAMA_DATABASE schema public `date` >> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=public -a NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_public_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full.log

echo END BACKUP Data NAMA_DATABASE schema public `date` >> ${LOG_PATH}/backup_full.log

 

echo START BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA `date` >> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA -a NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full.log

echo END BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA `date` >> ${LOG_PATH}/backup_full.log

 

echo START BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_2 `date` >> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_2 -a NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_2_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full.log

echo END BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_2 `date` >> ${LOG_PATH}/backup_full.log

 

echo START BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_3 `date` >> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_3 -a NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_3_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full.log

echo END BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_3 `date` >> ${LOG_PATH}/backup_full.log

 

echo START BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_4 `date` >> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_4 -a NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_4_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full.log

echo END BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_4 `date` >> ${LOG_PATH}/backup_full.log

 

echo START BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_5 `date` >> ${LOG_PATH}/backup_full.log

pg_dump -U postgres -h 127.0.0.1 -p 5432 --schema=NAMA_SCHEMA_5 -a NAMA_DATABASE | gzip -9 > ${PATH_FILE}/full_backup/NAMA_DATABASE_NAMA_SCHEMA_5_${DATE}_dc1_data.sql.gz 2>> ${LOG_PATH}/backup_full.log

echo END BACKUP Data NAMA_DATABASE schema NAMA_SCHEMA_5 `date` >> ${LOG_PATH}/backup_full.log

 

echo END `date` >> ${LOG_PATH}/backup_full.log

echo ======================================================================================================================= >> ${LOG_PATH}/backup_full.log

Bash Script Monitoring Certificate Kubernetes Cluster (Telegram Alert)

 

#!/bin/bash

 

HOST=$(hostname)

 

# ID Telegram

TOKEN=telegram_token

CHAT_ID=telegram_chatId

 

# Cek Sertifikat SSL Kubernetes

cert_info=$(kubeadm certs check-expiration)

expires_date=$(echo "$cert_info" | awk 'NR>6 {print $2, $3, $4, $5; exit}')

days_remaining=$(echo "$cert_info" | awk 'NR>6 {print $7; exit}')

 

# Hapus "d" dari variable days_remaining menjadi full integer

days_remaining="${days_remaining%d}"

 

# Mengecek apakah sisa hari kurang dari 90

if [ "$days_remaining" -lt 90 ]; then

  # Tampilkan Sertifikat SSL Kubernetes

  echo "Cluster    : $HOST" > /opt/scripts/ssl_kuber.log

  echo "Expire on : $expires_date" >> /opt/scripts/ssl_kuber.log

  echo "Counting  : $days_remaining days" >> /opt/scripts/ssl_kuber.log

 

  # Kirim Notifikasi

  MESSAGE="$(cat /opt/scriptss/ssl_kuber.log)"

  URL="https://api.telegram.org/bot$TOKEN/sendMessage"

  curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$(echo -e '\U0001f525 \U0001f514 \nNP2.1 Kubernetes SSLn\n')$(echo -e '\n-----------------------------------\n')$(echo -e '\n'"$MESSAGE")

"

else

  echo "check-expiration: OK: $days_remaining days"

fi

 

sleep 3

rm -f /opt/scripts/ssl_kuber.log

Bash Script Monitoring CSR Kubernetes (Telegram Alert)

 

#!/bin/bash

HOST=$(hostname)

TOKEN=telegram_token

CHAT_ID=telegram_chat_id

 

pending_csrs=$(kubectl get csr | awk '$4=="Pending"')

  if [ -z "$pending_csrs" ]; then

    echo "No pending CSRs."

  else

    # Tampilkan CSR Kubernetes

    echo "Cluster     : $HOST" > /opt/scripts/csr_kuber.log

    echo "Status CSR : You have pending CSRs" >> /opt/scripts/csr_kuber.log

    sumpending=$(kubectl get csr | awk '$4=="Pending"'| wc -l)

    echo "Total      : $sumpending" >> /opt/scripts/csr_kuber.log

 

    # Kirim telegram

    MESSAGE="$(cat /opt/scripts/csr_kuber.log)"

    curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d "chat_id=$CHAT_ID" -d "text="$(echo -e '\U0001f525 \U0001f514 \nNP2 Kubernetes SSLn\n')$(echo -e '\n-----------------------------------\n')$(echo -e '\n'"$MESSAGE")

  fi

 

sleep 3

rm -f /opt/scripts/csr_kuber.log

Bash Script Monitoring Service Kubernetes (Telegram Alert)

#!/bin/bash

 

TOKEN=telegram_token

CHAT_ID=telegram_id

log=/var/log/svc.log

tgl=$(date +"%A %d-%m-%Y %T")

 

export PATH=/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

export KUBECONFIG=/etc/kubernetes/admin.conf

 

function getsvc {

        echo "" > $log

        /usr/bin/kubectl get pods --all-namespaces --no-headers | grep 'ImagePullBackOff' | awk '{print "\nProject = " $1 "\nPods = " $2 "\nStatus =  " $4 "\n_____________________________"}' >> $log

        /usr/bin/kubectl get pods --all-namespaces --no-headers | grep 'CrashLoopBackOff' | awk '{print "\nProject = " $1 "\nPods = " $2 "\nStatus =  " $4 "\n_____________________________"}' >> $log

        /usr/bin/kubectl get pods --all-namespaces --no-headers | grep 'Pending' | awk '{print "\nProject = " $1 "\nPods = " $2 "\nStatus =  " $4 "\n_____________________________"}' >> $log

        /usr/bin/kubectl get pods --all-namespaces --no-headers | grep 'Outofmemory' | awk '{print "\nProject = " $1 "\nPods = " $2 "\nStatus =  " $4 "\n_____________________________"}' >> $log

        /usr/bin/kubectl get pods --all-namespaces --no-headers | grep 'Outofcpu' | awk '{print "\nProject = " $1 "\nPods = " $2 "\nStatus =  " $4 "\n_____________________________"}' >> $log

#       /usr/bin/kubectl get pods --all-namespaces --no-headers | grep 'Running' | awk '{print "\nProject = " $1 "\nPods = " $2 "\nStatus =  " $4 "\n_____________________________"}' >> $log

}

 

getsvc

 

message=$(<$log)

send() {

        curl  \

        -X POST \

        https://api.telegram.org/bot$TOKEN/sendMessage \

        -d chat_id=$CHAT_ID \

        -d text="`echo -e '\U0001f525 \u274C \U0001f514 \nNP2 Service Down\n.'`$tgl`echo -e '\n_____________________________\n'` $message"

}

 

if [[ ! -z "$message" ]]; then

        send

else

        echo "Error message"

fi