ubantu定时删除N天前的日志及空目录脚本

背景:
因调度平台在运行中产生大量的日志,占用内存和磁盘空间,需在此服务器上设置定时清理。
创建shell脚本

touch clean_log.sh

清理脚本如下

vim clean_log.sh
#清理7天前的(清理多少天前的就改成多少)
find /opt/ds/worker-server/logs -mtime +7 |xargs rm -f
#清理空文件夹
find /opt/ds/worker-server/logs -type d -empty|xargs rm -rf

由于有多台服务器需要清理,批量脚本如下
touch batch_clean_log.sh

ssh_port=22
for host_name in $(awk '{print $2}'  host)
do
   sudo scp /opt/clean_log.sh root@$host_name:/opt
 done

host文件在/opt目录下,配置如下

127.0.0.1 cn01
127.0.0.x cnx

先配置服务间互信

echo -e "[ \033[1;34m 1.configure host \033[0m ]"
cat ./host >> /etc/hosts
echo -e "[ \033[1;32m ok \033[0m ]" configure host finished


echo -e "[ \033[1;34m 2.configure trusted other server \033[0m ]"
ssh-keygen -t rsa
for host in $(cat host | awk '{print $2}')
do
    echo "configure trusted host: $host"
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@$host
done


echo -e "[ \033[1;34m 3.configure host name \033[0m ]"
ips=$(awk '{print $1}' host)
ip_arr=(${ips// / })
i=0
for host_name in $(awk '{print $2}' host)
do
    echo "configure  host: $host_name, ip: ${ip_arr[$i]}"
    state=`ssh -o StrictHostKeyChecking=no -p $ssh_port $host_name  "sudo hostnamectl set-hostname $host_name;"`
    echo -e "[ \033[1;32m ok \033[0m ] configure host: $host_name"
    i=$((i+1))
done

创建定时任务执行脚本

ssh_port=22
for host_name in $(awk '{print $2}'  host)
do
 echo  "执行hostname=$host_name"
  ssh -o StrictHostKeyChecking=no -p $ssh_port $host_name "sudo bash /opt/clean_log.sh"
done

ubantu定时任务配置参考连接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值