CPU脚本并远程部署

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
相关推荐
吴声子夜歌7 天前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
吴声子夜歌9 天前
Shell编程实例——内务及管理任务(一)
linux·运维·shell
吴声子夜歌9 天前
Shell编程实例——高级脚本编程(一)
linux·运维·网络·shell
吴声子夜歌9 天前
Shell编程实例——bash的配置与自定义(二)
linux·运维·shell
吴声子夜歌10 天前
Shell编程实例——与解析相关的任务(二)
linux·运维·shell
吴声子夜歌10 天前
Shell编程实例——脚本编程的附加特性
linux·运维·shell
云计算练习生10 天前
什么是内核?操作系统内核到底管哪些事
linux·windows·操作系统·内核·shell
吴声子夜歌13 天前
Shell编程实例——bash入门
linux·运维·shell
Swizard13 天前
Linux 日志神器 journalctl 完全指南:彻底替代传统日志查看方式
shell
吴声子夜歌14 天前
Shell编程——数组
linux·运维·shell