常用的linux操作指令 - 问题处理记录
处理因系统原因引起的文件中特殊字符的问题
# 可以转换为该系统下的文件格式
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 占用过大
名称 | 含义 |
---|---|
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
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ALLBS!
评论