Guest User

taskbar_disk_monitor.sh.old

a guest
Nov 7th, 2022
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.53 KB | None | 0 0
  1. #!/bin/bash
  2. export LANG=C LC_ALL=C
  3. if [ -e "/dev/sdb" ]; then
  4.     sdb="1";
  5. fi
  6. if [ -e "/dev/sdc" ]; then
  7.     sdc="1";
  8. fi
  9. threshold_sda=10
  10. threshold_sdb=10
  11. threshold_sdc=2
  12. show_data_seconds=7
  13. counter_sda=0
  14. counter_sdb=0
  15. counter_sdc=0
  16. counter_no_data_sda=0
  17. counter_no_data_sdb=0
  18. counter_no_data_sdc=0
  19. show_sda=0
  20. show_sdb=0
  21. show_sdc=0
  22. command='if [ "$(pgrep "systemmonitor")" ];then killall systemmonitor &> /dev/null;else /usr/bin/systemmonitor & disown $!;fi'
  23. while :; do
  24.     data1_read_sda=$(/usr/bin/awk '/\<sda\>/{print $6}' /proc/diskstats);
  25.     data1_write_sda=$(/usr/bin/awk '/\<sda\>/{print $10}' /proc/diskstats);
  26.     if [ "$sdb" ]; then
  27.         data1_read_sdb=$(/usr/bin/awk '/\<sdb\>/{print $6}' /proc/diskstats);
  28.         data1_write_sdb=$(/usr/bin/awk '/\<sdb\>/{print $10}' /proc/diskstats);
  29.     fi
  30.     if [ "$sdc" ]; then
  31.         data1_read_sdc=$(/usr/bin/awk '/\<sdc\>/{print $6}' /proc/diskstats);
  32.         data1_write_sdc=$(/usr/bin/awk '/\<sdc\>/{print $10}' /proc/diskstats);
  33.     fi
  34.     /usr/bin/sleep 0.5 &&
  35.     data2_read_sda=$(/usr/bin/awk '/\<sda\>/{print $6}' /proc/diskstats);
  36.     data2_write_sda=$(/usr/bin/awk '/\<sda\>/{print $10}' /proc/diskstats);
  37.     read_sda=$((data2_read_sda - data1_read_sda));
  38.     write_sda=$((data2_write_sda - data1_write_sda));
  39.     sda_read_final=$((${read_sda%%}/1024))
  40.     sda_write_final=$((${write_sda%%}/1024))
  41.     if [ "$sdb" ]; then
  42.         data2_read_sdb=$(/usr/bin/awk '/\<sdb\>/{print $6}' /proc/diskstats);
  43.         data2_write_sdb=$(/usr/bin/awk '/\<sdb\>/{print $10}' /proc/diskstats);
  44.         read_sdb=$((data2_read_sdb - data1_read_sdb));
  45.         write_sdb=$((data2_write_sdb - data1_write_sdb));
  46.         sdb_read_final=$((${read_sdb%%}/1024))
  47.         sdb_write_final=$((${write_sdb%%}/1024))
  48.     fi
  49.     if [ "$sdc" ]; then
  50.         data2_read_sdc=$(/usr/bin/awk '/\<sdc\>/{print $6}' /proc/diskstats);
  51.         data2_write_sdc=$(/usr/bin/awk '/\<sdc\>/{print $10}' /proc/diskstats);
  52.         read_sdc=$((data2_read_sdc - data1_read_sdc));
  53.         write_sdc=$((data2_write_sdc - data1_write_sdc));
  54.         sdc_read_final=$((${read_sdc%%}/1024))
  55.         sdc_write_final=$((${write_sdc%%}/1024))
  56.     fi
  57.     DATA=()
  58.     has_data=()
  59.     counter_sda=$((counter_sda+1))
  60.     counter_sdb=$((counter_sdb+1))
  61.     counter_sdc=$((counter_sdc+1))
  62.     if [[ $sda_read_final -ge $threshold_sda || $sda_write_final -ge $threshold_sda || $show_sda -eq 1 ]]; then
  63.         DATA+='| A | SSD\| R: <b>'$sda_read_final'MB/s</b> W: <b>'$sda_write_final'MB/s</b> | | '$command' |'
  64.         has_data+=("sda")
  65.     fi
  66.     if [[ $sdb_read_final -ge $threshold_sdb || $sdb_write_final -ge $threshold_sdb || $show_sdb -eq 1 ]]; then
  67.         DATA+='| A | HDD\| R: <b>'$sdb_read_final'MB/s</b> W: <b>'$sdb_write_final'MB/s</b> | | '$command' |'
  68.         has_data+=("sdb")
  69.     fi
  70.     if [[ $sdc_read_final -ge $threshold_sdc || $sdc_write_final -ge $threshold_sdc || $show_sdc -eq 1 ]]; then
  71.         DATA+='| A | sdc\| R: '$sdc_read_final'MB/s W: '$sdc_write_final'MB/s | | '$command' |'
  72.         has_data+=("sdc")
  73.     fi
  74.     if [ ! "$has_data" ];then
  75.         DATA='| A | Sem atividade de disco | | '$command' |'
  76.             counter_no_data_sda=$((counter_no_data_sda+1))
  77.             counter_no_data_sdb=$((counter_no_data_sdb+1))
  78.             counter_no_data_sdc=$((counter_no_data_sdc+1))
  79.     else
  80.         if [[ "${has_data[*]}" == *"sda"* ]]; then
  81.             show_sda=1
  82.         else
  83.             counter_no_data_sda=$((counter_no_data_sda+1))
  84.         fi
  85.         if [[ "${has_data[*]}" == *"sdb"* ]]; then
  86.             show_sdb=1
  87.         else
  88.             counter_no_data_sdb=$((counter_no_data_sdb+1))
  89.         fi
  90.         if [[ "${has_data[*]}" == *"sdc"* ]]; then
  91.             show_sdc=1
  92.         else
  93.             counter_no_data_sdc=$((counter_no_data_sdc+1))
  94.         fi
  95.     fi
  96.     if [ $((counter_no_data_sda+show_data_seconds)) == $counter_sda ]; then
  97.         show_sda=0
  98.         counter_sda=0
  99.         counter_no_data_sda=0
  100.     fi
  101.     if [ $((counter_no_data_sdb+show_data_seconds)) == $counter_sdb ]; then
  102.         show_sdb=0
  103.         counter_sdb=0
  104.         counter_no_data_sdb=0
  105.     fi
  106.     if [ $((counter_no_data_sdc+show_data_seconds)) == $counter_sdc ]; then
  107.         show_sdc=0
  108.         counter_sdc=0
  109.         counter_no_data_sdc=0
  110.     fi
  111.     if [ "$DATA" != "$DATA_last" ];then
  112.         /usr/bin/qdbus org.kde.plasma.doityourselfbar /id_951 org.kde.plasma.doityourselfbar.pass "${DATA[@]}"
  113.         DATA_last="$DATA"
  114.         /usr/bin/sleep 0.5
  115.     else
  116.         /usr/bin/sleep 2
  117.     fi
  118. done
  119.  
  120.  
Advertisement
Add Comment
Please, Sign In to add comment