CPU脚本
shell
#!/bin/bash
# filename: cputest.sh
endless_loop()
{
local marker="cputest_worker_$$"
# 使用 bash -c 执行,并在命令中包含唯一标识
/bin/bash -c "i=0; while true; do ((i+=100)); i=100; done # $marker" &
}
if [ $# != 1 ]; then
echo "USAGE: $0 <CPUs>"
exit 1
fi
declare -a pid_array
for i in $(seq "$1"); do
endless_loop
pid_array+=($!)
done
echo "Started ${#pid_array[@]} CPU stress processes:"
for pid in "${pid_array[@]}"; do
echo " PID: $pid (kill with: kill $pid)"
done
echo
echo "To find them later, run: ps -ef | grep 'cputest_worker_'"
远程部署到主机
shell
#!/bin/bash
# filename: deploy.sh
# 配置
SCRIPT_LOCAL="cputest.sh" # 本地脚本路径
REMOTE_USER="root" # 远程用户名,如 ubuntu、root 等
REMOTE_DIR="/data/shell/res" # 远程存放目录
# 遍历 IP 段 192.168.31.1 到 192.168.31.10
for i in {1..10}; do
IP="10.78.71.$i"
echo ">>> Processing $IP ..."
# 创建没记录
ssh -q "${REMOTE_USER}@${IP}" "mkdir -p ${REMOTE_DIR}"
# 拷贝脚本到远程主机
scp -q "$SCRIPT_LOCAL" "${REMOTE_USER}@${IP}:${REMOTE_DIR}/${SCRIPT_LOCAL}" || {
echo "❌ Failed to copy to $IP"
continue
}
# 远程执行
ssh -q $REMOTE_USER@$IP <<EOF 2>&1 | grep -v -E "Authorized|Web console" | grep -v '^$'
cd $REMOTE_DIR
# 关闭之前的进程
ps -ef | grep cputest_worker | grep -v grep | awk '{print \$2}' | xargs -r kill -9
# 设置权限
chmod +x ./$SCRIPT_LOCAL
# 后台执行
nohup ./$SCRIPT_LOCAL 1 >> /dev/null 2>&1 &
EOF
echo "✅ Successfully deployed and executed on $IP"
done