shell脚本,删除30天以前的日志,并将日志推送到nas,但运行出现/bin/bash^M。

1、删除30天以前的日志:

powershell 复制代码
#! /bin/bash

# 定义源日志目录
LOG_DIR=/home/log/
# 删除日志
find $LOG_DIR  -type f -name "*.log" -mtime +30 -exec rm -f {} \;
# 输出成功信息
echo "The 30 day log ago has been deleted."

2、将日志推送到nas中,然后删除pod中的日志
注意:pod中的日志需要挂载到本地。

powershell 复制代码
#! /bin/bash

#Set variables
#本地日志的地址
LOG_DIR=/home/log
#nas地址
NAS_DIR=/home/nas/log

#local_log  to nas
find $LOG_DIR -name "*.log" -exec cp -arf {} $NAS_DIR \;

#clear local all-log
find $LOG_DIR -type f -name "*.log" -mtime +30 -exec rm {} \;

# 输出成功信息
echo "Logs have been backed up to NAS."

3、pod挂载到本地

第一种:直接挂载目录。

第二种:使用pv


4、运行出现/bin/bash^M

bash 复制代码
1、首先检查,linux中 /bin 下是否有bash。
      安装- yum install bash
2、#! /bin/bash     #!+空格+/bin/bash
      查看是否有空格。
3、以上2个都没有问题的,Windows的换行符与linux的不同,可能这个导致的。
   使用dos2unix  文件名。转化成linux的形式。如果没有dos2unix命令,执行 yum -y install dos2unix
 
相关推荐
Charary36 分钟前
字符设备驱动开发与杂项开发
linux·驱动开发
梦游钓鱼1 小时前
在window终端创建docker容器的问题
运维·docker·容器
孤寂大仙v1 小时前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
沉默的八哥2 小时前
K8S高可用Web应用部署方案
运维
winyh52 小时前
Vite 打包后Nginx部署配置
运维·nginx
钢板兽2 小时前
Java后端高频面经——JVM、Linux、Git、Docker
java·linux·jvm·git·后端·docker·面试
byxdaz2 小时前
NVIDIA显卡驱动、CUDA、cuDNN 和 TensorRT 版本匹配指南
linux·人工智能·深度学习
大白的编程日记.3 小时前
【Linux学习笔记】Linux基本指令分析和权限的概念
linux·笔记·学习
运维小贺3 小时前
Nginx常用的模块
运维·nginx·正则表达式