处理因系统原因引起的文件中特殊字符的问题

# 可以转换为该系统下的文件格式
cat file.sh > file.sh_bak

# 先将file.sh中文件内容复制下来然后运行, 然后粘贴内容, 最后ctrl + d 保存退出
cat > file1.sh

# 在vim中通过如下设置文件编码和文件格式
:set fileencodings=utf-8 ,然后 w (存盘)一下即可转化为 utf8 格式,
:set fileformat=unix

# 在mac下使用dos2unix进行文件格式化
find . -name "*.sh" | xargs dos2unix

tee, 重定向的同时输出到屏幕

awk ‘{print $0}’ xxx.log | tee test.log

buff/cache 占用过大

image-20220728093328239

名称 含义
total 计算机总物理内存,used + free
used 已用的内存
free 空余的内存
shared 被多个进程共享的内存
buffers 用于存放要输出到disk(块存储)的数据,在这里buff是指被OS buffer住的内存
cached 存放从disk上读出的数据;buffer和cache是为了提高IO性能并由OS管理。
查看drop cache配置
cat /proc/sys/vm/drop_caches
显示结果
状态 含义
0 不释放(系统默认)
1 释放页缓存
2 清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache
3 清除页缓存和slab分配器中的缓存对象
释放缓存
echo 3 > /proc/sys/vm/drop_caches
设置定时器定时清除
# 进入/usr/local目录下
cd /usr/local

# 创建清除脚本
touch cleanBufferAndCache.sh

# 写入脚本内容,如果是在windows环境下记得切换下编码格式,如notepad++右下角切换为unix
# !/bin/bash 
echo "Start cleaning buff/cache"
# 将所有未写的系统缓冲区写到磁盘中
sudo sync;sync;sync
#延迟5秒
sleep 5
# 释放页缓存
sudo echo 1 > /proc/sys/vm/drop_caches
# 释放dentries和inodes
sudo echo 2 > /proc/sys/vm/drop_caches
# 释放所有缓存
sudo echo 3 > /proc/sys/vm/drop_caches
echo "cleaning ending......"

# 添加定时器
crontab -e

# 定时器内容
50 23 * * * /usr/local/cleanBufferAndCache.sh

# 查看定时器
crontab -l