ສະຄິບ Shell ເພື່ອສົ່ງອີເມວແຈ້ງເຕືອນເມື່ອຄວາມ ຈຳ ໄດ້ຕໍ່າ


ລັກສະນະທີ່ມີປະສິດທິພາບຂອງໂປແກຼມຫອຍ Unix/Linux ເຊັ່ນ: bash, ແມ່ນການສະ ໜັບ ສະ ໜູນ ທີ່ ໜ້າ ຕື່ນຕາຕື່ນໃຈຂອງພວກເຂົາ ສຳ ລັບການກໍ່ສ້າງໂປແກຼມທົ່ວໄປທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດຕັດສິນໃຈ, ປະຕິບັດ ຄຳ ສັ່ງຊ້ ຳ ໆ , ສ້າງ ໜ້າ ທີ່ ໃໝ່ ແລະອື່ນໆ. ທ່ານສາມາດຂຽນ ຄຳ ສັ່ງໃນແຟ້ມທີ່ຮູ້ກັນໃນນາມວ່າ shell shell ແລະປະຕິບັດຕາມ ຄຳ ສັ່ງລວມ.

ນີ້ສະເຫນີໃຫ້ທ່ານມີວິທີການທີ່ ໜ້າ ເຊື່ອຖືແລະມີປະສິດທິພາບໃນການບໍລິຫານລະບົບ. ທ່ານສາມາດຂຽນສະຄິບເພື່ອອັດຕະໂນມັດວຽກງານ, ຍົກຕົວຢ່າງການເຮັດວຽກປະ ຈຳ ວັນ, ການປັບປຸງລະບົບແລະອື່ນໆ; ສ້າງ ຄຳ ສັ່ງ/ອຸປະກອນປະໂຫຍດ/ເຄື່ອງມື ໃໝ່ ແລະອື່ນໆ. ທ່ານສາມາດຂຽນສະຄິບຕ່າງໆເພື່ອຊ່ວຍທ່ານໃນການຕິດຕໍ່ກັບສິ່ງທີ່ ກຳ ລັງເປີດເຜີຍຢູ່ໃນເຊີບເວີ.

ໜຶ່ງ ໃນສ່ວນປະກອບ ສຳ ຄັນຂອງ server ແມ່ນຄວາມ ຈຳ (RAM) ມັນມີຜົນກະທົບຢ່າງຫຼວງຫຼາຍຕໍ່ການເຮັດວຽກຂອງລະບົບໂດຍລວມ.

ໃນບົດຂຽນນີ້, ພວກເຮົາຈະແບ່ງປັນສະຄິບແກະນ້ອຍແຕ່ມີປະໂຫຍດເພື່ອສົ່ງອີເມວແຈ້ງເຕືອນໃຫ້ຜູ້ເບິ່ງແຍງລະບົບ ໜຶ່ງ ຄົນຫຼືຫຼາຍຄົນ, ຖ້າວ່າຄວາມ ຈຳ ຂອງເຊີບເວີຢູ່ໃນລະດັບຕໍ່າ.

ບົດຂຽນນີ້ແມ່ນເປັນປະໂຫຍດໂດຍສະເພາະ ສຳ ລັບການຮັກສາລະບົບ Linux VPS (Virtual Private Servers) ທີ່ມີຄວາມ ຈຳ ໜ້ອຍ, ເວົ້າປະມານ 1GB (ປະມານ 990MB).

<

  • ເຄື່ອງແມ່ຂ່າຍການຜະລິດແບບ CentOS/RHEL 7 ທີ່ມີປະໂຫຍດ mailx ທີ່ຕິດຕັ້ງໄວ້ກັບ server postfix ທີ່ເຮັດວຽກ.
  • ນີ້ແມ່ນວິທີການເຮັດວຽກຂອງສະຖານະການ Alertmemory.sh: ທຳ ອິດມັນກວດເບິ່ງຂະ ໜາດ ຂອງ ໜ່ວຍ ຄວາມ ຈຳ ທີ່ບໍ່ເສຍຄ່າ, ຫຼັງຈາກນັ້ນ ກຳ ນົດວ່າ ຈຳ ນວນ ໜ່ວຍ ຄວາມ ຈຳ ບໍ່ເສຍຄ່າ ໜ້ອຍ ຫລືເທົ່າກັບຂະ ໜາດ ທີ່ ກຳ ນົດໄວ້ (100 MB ສຳ ລັບຈຸດປະສົງຂອງ ຄຳ ແນະ ນຳ ນີ້), ໃຊ້ເປັນເຄື່ອງ ໝາຍ ສຳ ລັບໃຊ້ ຂະ ໜາດ ຄວາມ ຈຳ ຟຣີທີ່ຍອມຮັບໄດ້ ໜ້ອຍ ທີ່ສຸດ.

    ຖ້າສະພາບການນີ້ເປັນຄວາມຈິງ, ມັນຈະສ້າງບັນຊີລາຍຊື່ຂອງ 10 ຂະບວນການສູງສຸດທີ່ໃຊ້ RAM ຂອງເຄື່ອງແມ່ຂ່າຍແລະສົ່ງອີເມວແຈ້ງເຕືອນໄປຫາທີ່ຢູ່ອີເມວທີ່ລະບຸ.

    ໝາຍ ເຫດ: ທ່ານຈະຕ້ອງປ່ຽນແປງສະຄິບ ໜ້ອຍ ໜຶ່ງ (ໂດຍສະເພາະຜົນປະໂຫຍດຂອງຜູ້ສົ່ງຈົດ ໝາຍ, ໃຊ້ທຸງທີ່ ເໝາະ ສົມ) ເພື່ອຕອບສະ ໜອງ ຄວາມຕ້ອງການການແຈກຈ່າຍ Linux ຂອງທ່ານ.

    #!/bin/bash 
    #######################################################################################
    #Script Name    :alertmemory.sh
    #Description    :send alert mail when server memory is running low
    #Args           :       
    #Author         :Aaron Kili Kisinga
    #Email          :[email 
    #License       : GNU GPL-3	
    #######################################################################################
    ## declare mail variables
    ##email subject 
    subject="Server Memory Status Alert"
    ##sending mail as
    from="[email "
    ## sending mail to
    to="[email "
    ## send carbon copy to
    also_to="[email "
    
    ## get total free memory size in megabytes(MB) 
    free=$(free -mt | grep Total | awk '{print $4}')
    
    ## check if free memory is less or equals to  100MB
    if [[ "$free" -le 100  ]]; then
            ## get top processes consuming system memory and save to temporary file 
            ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/top_proccesses_consuming_memory.txt
    
            file=/tmp/top_proccesses_consuming_memory.txt
            ## send email if system memory is running low
            echo -e "Warning, server memory is running low!\n\nFree memory: $free MB" | mailx -a "$file" -s "$subject" -r "$from" -c "$to" "$also_to"
    fi
    
    exit 0
    

    ຫຼັງຈາກສ້າງ script /etc/scripts/alertmemory.sh ຂອງທ່ານ, ເຮັດໃຫ້ມັນສາມາດປະຕິບັດໄດ້ແລະ symlink ກັບ cron.hourly.

    # chmod +x /etc/scripts/alertmemory.sh
    # ln -s -t /etc/cron.hourly/alertmemory.sh /etc/scripts/alertmemory.sh
    

    ນີ້ ໝາຍ ຄວາມວ່າຄິບຂ້າງເທິງຈະຖືກໃຊ້ພາຍຫຼັງທຸກໆ 1 ຊົ່ວໂມງຕາບໃດທີ່ເຄື່ອງແມ່ຂ່າຍ ກຳ ລັງແລ່ນຢູ່.

    ຄຳ ແນະ ນຳ: ທ່ານສາມາດທົດສອບໄດ້ຖ້າມັນເຮັດວຽກຕາມຈຸດປະສົງ, ຕັ້ງຄ່າເຄື່ອງ ໝາຍ bench ສູງໃຫ້ສູງພຽງເລັກນ້ອຍເພື່ອສົ່ງອີເມວທີ່ຖືກສົ່ງ, ແລະ ກຳ ນົດໄລຍະຫ່າງປະມານ 5 ນາທີ.

    ຈາກນັ້ນສືບຕໍ່ກວດສອບຈາກເສັ້ນ ຄຳ ສັ່ງໂດຍໃຊ້ ຄຳ ສັ່ງທີ່ບໍ່ເສຍຄ່າທີ່ຂຽນໄວ້ໃນບົດຂຽນ. ເມື່ອທ່ານຢືນຢັນວ່າມັນເຮັດວຽກຢູ່ແລ້ວ, ໃຫ້ ກຳ ນົດຄຸນຄ່າຕົວຈິງທີ່ທ່ານຕ້ອງການໃຊ້.

    ຂ້າງລຸ່ມນີ້ແມ່ນພາບ ໜ້າ ຈໍສະແດງອີເມວແຈ້ງເຕືອນຕົວຢ່າງ.

    ຫມົດເທົ່ານີ້! ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ອະທິບາຍວິທີການໃຊ້ shell script ເພື່ອສົ່ງອີເມວແຈ້ງເຕືອນໃຫ້ຜູ້ເບິ່ງແຍງລະບົບໃນກໍລະນີທີ່ ໜ່ວຍ ຄວາມ ຈຳ server (RAM) ກຳ ລັງແລ່ນຢູ່ໃນລະດັບຕໍ່າ. ທ່ານສາມາດແບ່ງປັນຄວາມຄິດທີ່ກ່ຽວຂ້ອງກັບຫົວຂໍ້ນີ້, ກັບພວກເຮົາຜ່ານແບບຟອມ ຄຳ ຄິດເຫັນດ້ານລຸ່ມ.