Advertisement
teuk

load_server_with_gzip.sh

Jan 7th, 2017
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.50 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function usage {
  4.         if [ ! -z "$1" ]; then
  5.                 echo $1
  6.         fi
  7.         echo "$(basename $0) [-h] [-n nb_gzip_files]"
  8.         exit 0
  9. }
  10.  
  11. while getopts 'n:h' opt; do
  12.         case $opt in
  13.                 n)
  14.                         OPTSFOUND=1
  15.                         NBGZIPFILES=${OPTARG}
  16.                         ;;
  17.                 h)
  18.                         OPTSFOUND=1
  19.                         usage
  20.                         ;;
  21.                 \?)
  22.                         usage "Invalid option"
  23.                         ;;
  24.         esac
  25. done
  26. shift $(( $OPTIND-1 ))
  27.  
  28. if [ -z "${NBGZIPFILES}" ]; then
  29.         NBGZIPFILES=10
  30. fi
  31.  
  32. DDOF=file2gzip.$$
  33. DDCMD="dd if=/dev/urandom of=${DDOF} bs=1024 count=100000"
  34. DISKFREE=$(df -mP . | tail -n 1 | awk '{print $4}')
  35.  
  36. DISKNEEDED=$[NBGZIPFILES*100]
  37. if ((DISKNEEDED > DISKFREE)); then
  38.         echo "Not enough disk space ${DISKNEEDED}m required"
  39.         df -hP .
  40.         exit 1
  41. fi
  42.  
  43. echo "Dumping random file"
  44. ${DDCMD} &
  45.  
  46. DDPID=$!
  47.  
  48. while [ ! -z "$(ps -eaf | grep -v grep | grep ${DDPID})" ]
  49.  do
  50.         kill -USR1 ${DDPID}
  51.         echo "----------------------"
  52.         sleep 3
  53.  done
  54.  
  55. for ((i=0;i<NBGZIPFILES;i++))
  56.  do
  57.         gzip -9 ${DDOF} -c > ${DDOF}.$i.gz &
  58.  done
  59.  
  60. while [ ! -z "$(ps -eaf | grep -v grep | grep ${DDOF})" ]
  61.  do
  62.         clear
  63.         uptime
  64.         echo "----------------------------------------------------------------------"
  65.         ls -lh ${DDOF}.*
  66.         sleep 5
  67.  done
  68.  
  69. rm -f ${DDOF}*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement