需求:开发监控两个NFS位置构建文件夹磁盘空间并记录时间的脚本
跨服务器构建文件夹磁盘空间监控脚本
前提条件
- 已配置监控服务器到印度Linux服务器、渥太华Linux服务器的SSH免密登录,确保无需输入密码即可执行远程命令。
监控脚本(bash)
#!/bin/bash # 定义服务器及目标路径信息 INDIA_SERVER="your-india-server-ip-or-hostname" INDIA_PATH="/nfs/appdata/6500_build" OTTAWA_SERVER="your-ottawa-server-ip-or-hostname" OTTAWA_PATH="/nfs/appdata/bamboo_6500_dest" # 定义日志文件路径(可根据需求修改) LOG_FILE="/var/log/build_space_monitor.log" # 获取当前时间戳 CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S") # 获取印度服务器目标文件夹空间 INDIA_SPACE=$(ssh $INDIA_SERVER "du -sh $INDIA_PATH 2>/dev/null | awk '{print \$1}'") if [ -z "$INDIA_SPACE" ]; then INDIA_SPACE="获取失败(路径不存在或无权限)" fi # 获取渥太华服务器目标文件夹空间 OTTAWA_SPACE=$(ssh $OTTAWA_SERVER "du -sh $OTTAWA_PATH 2>/dev/null | awk '{print \$1}'") if [ -z "$OTTAWA_SPACE" ]; then OTTAWA_SPACE="获取失败(路径不存在或无权限)" fi # 写入日志 echo "[$CURRENT_TIME] 印度服务器($INDIA_SERVER) $INDIA_PATH: $INDIA_SPACE" >> $LOG_FILE echo "[$CURRENT_TIME] 渥太华服务器($OTTAWA_SERVER) $OTTAWA_PATH: $OTTAWA_SPACE" >> $LOG_FILE echo "------------------------------------------------------------" >> $LOG_FILE
脚本说明
- 使用
du -sh命令获取目标文件夹的总大小(人类可读格式),并通过awk提取大小数值部分。 - 加入错误处理:若远程命令执行失败(如路径不存在、无权限),日志中会记录“获取失败”提示。
- 日志文件默认写入
/var/log/build_space_monitor.log,可根据实际需求修改路径。 - 每条日志记录包含时间戳、服务器标识、目标路径及空间大小,便于后续排查。
使用方法
- 将上述脚本保存为
build_space_monitor.sh。 - 赋予执行权限:
chmod +x build_space_monitor.sh。 - 手动测试执行:
./build_space_monitor.sh,查看日志文件确认记录正常。 - 若需要定时监控,可通过
crontab配置定时任务,例如每小时执行一次:crontab -e # 添加以下内容 0 * * * * /path/to/build_space_monitor.sh
内容的提问来源于stack exchange,提问作者Soni
相关产品推荐
相关产品推荐

