change.sh 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #!/bin/bash
  2. #########################################################################
  3. # Script for change important parameters #
  4. # Created by PM-DoIT #
  5. # 0.7 #
  6. #########################################################################
  7. #------------------------------ DEFINITION -----------------------------#
  8. MOD=BASERPI
  9. #------------------------------- LOCAL IP ------------------------------#
  10. check_nic(){
  11. NICS=$(find /sys/class/net -type l -not -lname '*virtual*' -printf '%f\n')
  12. for i in $NICS;
  13. do
  14. CI=$(ifconfig $i | grep -w inet)
  15. if [ ! -z "$CI" ]; then
  16. echo -e "- \e[1;32mActive\e[0m [\e[1;33m$i\e[0m]"
  17. SN=$(ifconfig $i | grep -w ether | sed 's/:/ /g' | awk '{print tolower ($5$6$7)}')
  18. IP=$(ifconfig $i | grep -w inet | awk '{print $2}')
  19. fi
  20. done
  21. if [ -z "$IP" ]; then
  22. echo -e "- \e[1;31mmissing\e[0m IP address"
  23. exit 1
  24. else
  25. echo -e "- \e[1;32mIP-Address\e[0m [\e[1;33m$IP\e[0m]"
  26. fi
  27. OLDURL=$(cat /etc/monit/monitrc | grep "use address" | awk '{print $3}')
  28. if [ -z "$OLDURL" ]; then
  29. OLDURL=$(cat $WEB | grep http | awk '{print $4}' | sed 's/\/\// /g' | sed 's/\// /g' | sed 's/:/ /g' | awk '{print $2}' | sort | uniq | grep [0-9])
  30. fi
  31. }
  32. #--------------------------- UPDATE HOSTNAME ---------------------------#
  33. update_host(){
  34. if ! grep -qs "$MOD-$SN" /etc/hosts;
  35. then
  36. echo -e "- \e[1;33mUpdating\e[0m [\e[1;34mHOST\e[0m]"
  37. echo "$MOD-$SN" > /etc/hostname
  38. chattr -i /etc/hosts
  39. echo "127.0.0.1 localhost" > /etc/hosts
  40. echo "127.0.1.1 $MOD-$SN" >> /etc/hosts
  41. chattr +i /etc/hosts
  42. hostname "$MOD-$SN"
  43. fi
  44. }
  45. #----------------------------- UPDATE MONIT ----------------------------#
  46. update_monit(){
  47. MONIT=$(cat /etc/monit/monitrc | grep "check system" | awk '{print $3}')
  48. MONIP=$(cat /etc/monit/monitrc | grep "use address" | awk '{print $3}')
  49. if [[ "$MOD-$SN" != "$MONIT" ]] || [[ "$IP" != "$MONIP" ]]; then
  50. echo -e "- \e[1;33mUpdating\e[0m [\e[1;35m/etc/monit/monitrc\e[0m]"
  51. sed -i "s/check system.*/check system $MOD-$SN/g" /etc/monit/monitrc
  52. sed -i "s/use address.*/use address $IP/g" /etc/monit/monitrc
  53. /etc/init.d/monit restart > /dev/null 2>&1 || systemctl restart monit > /dev/null 2>&1
  54. fi
  55. }
  56. #--------------------------- UPDATE POSTFIX ----------------------------#
  57. update_postfix(){
  58. POSTFIX=$(cat /etc/postfix/main.cf | grep -w "^myhostname" | awk '{print $3}')
  59. if [[ "$MOD-$SN" != "$POSTFIX" ]]; then
  60. echo -e "- \e[1;33mUpdating\e[0m [\e[1;35m/etc/postfix/main.cf\e[0m]"
  61. sed -i "s/myhostname =.*/myhostname = $MOD-$SN/g" /etc/postfix/main.cf
  62. sed -i "s/mydestination = \$myhostname,.*/mydestination = \$myhostname, $MOD-$SN, localhost/g" /etc/postfix/main.cf
  63. newaliases
  64. /etc/init.d/postfix restart > /dev/null 2>&1 || systemctl restart postfix > /dev/null 2>&1
  65. fi
  66. }
  67. #-------------------------- UPDATE WEB SOURCE --------------------------#
  68. update_web(){
  69. LST=$(find /var/www/ -name index.htm*)
  70. if [[ "$OLDURL" != "$IP" ]]; then
  71. echo -e "- \e[1;33mUpdating\e[0m \e[1;34mIP\e[0m [\e[1;35m$w\e[0m]"
  72. for w in $LST;
  73. do
  74. sed -i "s/$OLDURL/$IP/g" $w
  75. done
  76. fi
  77. for w in $LST;
  78. do
  79. OLDHST=$(cat $w | grep -i TITLE | sed 's/>/ /g' | sed 's/</ /g' | awk '{print $2}')
  80. if [[ "$OLDHST" != "$MOD-$SN" ]]; then
  81. echo -e "- \e[1;33mUpdating\e[0m \e[1;34mHOST\e[0m [\e[1;35m$w\e[0m]"
  82. sed -i "s/<TITLE>.*/<TITLE>$MOD-$SN<\/TITLE>/g" $w
  83. sed -i "s/<title>.*/<title>$MOD-$SN<\/title>/g" $w
  84. sed -i "s/on server.*/on server $MOD-$SN<\/font><\/p>/g" $w
  85. fi
  86. done
  87. }
  88. #--------------------------------- CORE --------------------------------#
  89. clear
  90. check_nic
  91. update_host
  92. update_monit
  93. update_postfix
  94. update_web