I needed a script that would set a CPU usage value to a certain percent to test some static and forecasting alerts. All right for this to openAI. This script takes a parameter 1-100 and the script will attempt to keep the CPU value at that level.
#!/bin/bash
# Check if usage percentage is passed as an argument
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <cpu_usage_percentage>"
exit 1
fi
# Desired CPU usage percentage
cpu_usage=$1
# Calculate sleep duration based on desired CPU usage
sleep_duration=$(awk "BEGIN {print (1 - $cpu_usage / 100) / ($cpu_usage / 100)}")
# Function to consume CPU up to the specified percentage
limit_cpu_usage() {
while true; do
# Start time
start=$(date +%s.%N)
# Busy loop for the duration of one second
end=$(echo "$start + 1" | bc)
while true; do
current=$(date +%s.%N)
check=$(echo "$current < $end" | bc)
if [ "$check" -eq 0 ]; then
break
fi
: # No-op
done
# Sleep for the calculated duration
sleep $sleep_duration
done
}
# Run the function in the foreground
limit_cpu_usage
# Run the function in the background
# limit_cpu_usage &