Shell脚本-自动删除特定磁盘日志、批量上传程序并远程添加计划任务

Shell脚本-自动删除特定磁盘日志、批量上传程序并远程添加计划任务

脚本说明

维护Hadoop集群的时候,经常会遇到部分节点的某些磁盘因为日志过多出现可用空间不足,导致节点程序异常的问题。又由于集群的规模较大,各服务器的配置以及磁盘划分又很相似,因此编辑两个脚本,联合使用,以避免此类问题的发生,也同时提高了维护工作的效率。

脚本代码

脚本1

说明:
由于集群各节点挂载的磁盘分区都以data*命名,所以检索data。并将检索到的磁盘分区中的日志删除,以释放磁盘空间。
[root@localhost]# vim /root/ys/rm_log/rm_log.sh

#!/bin/bash
for i in `df -hT | grep data | awk '{print $7}'`;do find $i -type f -name "*.log" | xargs -i rm -rf {};done

脚本2

说明:
由于集群规模庞大,不可能在每个节点中手动创建删除日志的计划任务。特编辑脚本2,用于批量上传删除日志脚本,并批量添加远程服务器的计划任务。

#!/bin/bash
work_path=/root/ys/up_rmlog
soft_path=/root/ys/rm_log

for ip in `cat ${work_path}/ip.txt`
#ip.txt中包含集群所有节点的IP地址。
do
  if ssh root@${ip} test -e ${soft_path};then
    scp ${soft_path}/rm_log.sh root@{ip}:${soft_path}/
  else
    ssh root@${ip} mkdir -p ${soft_path}
    scp ${soft_path}/rm_log.sh root@${ip}:${soft_path}/
    #判断远程服务器上有无程序目录,有则直接scp脚本至远程目录,没有则先创建远程目录,然后再scp脚本。
  fi
  ssh root@${ip} '(echo "01 */12 * * * /root/ys/rm_log/rm_log.sh";crontab -l) | crontab'
  #在远程服务器中创建与删除日志有关的计划任务。
done

脚本使用方法

1,在脚本2的工作目录中创建ip.txt文件,该文件中包含集群所有节点的IP地址。
2,运行脚本2,便可以实现批量上传脚本文件至远程服务器,并为远程服务器自动添加删除日志相关的计划任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值