最近测试SD卡,顺便学习了一些shell命令,这里顺便记一下。

第一则,为了防止SD卡空间被占满,需要对空间进行判断并清理文件,下面的脚本显示2种方式,一个是通过百分比,一个是通过文件数,个人认为通过百分比比较好一些。关于脚本的挂载目录、百分比、删除文件个数等参数,根据实际情况修改即可。

#!/bin/sh
#前提:已挂载目录
mount_dir=/mnt/sd
percent_in=70
file_del=1000count_del=1000percent=`df -h | grep $mount_dir | awk '{print $5}' | tr -d '%'`
dev_file=`df -h | grep $mount_dir | awk '{print $1}'`
file_count=`ls -l $mount_dir | wc -l`# 当空间占用百分比大于某个指定值时,删除目录前指定的数量
if [ $percent -ge $percent_in ];thenecho "need to remove file! occupy" $percent"%" "of" $dev_filecd $mount_dirfile=`ls | sort | head -$file_del`rm $filecd -
elseecho "no need to remove file"
fi
# 当文件个数达到一定数量时删除前x个文件
if [ $file_count -ge $count_del ];thenecho "need to remove file! occupy total" $count_del "files of" $dev_filecd $mount_dirfile=`ls | sort | head -$file_del`rm $filecd -
elseecho "no need to remove file"
fi#file=`ls | sort | head -$file_del`
#echo $fileecho "comand complete at"
date
echo "======================================"

第二则,统计命令执行时间(这个功能使用在测试SD卡性能上)。主要涉及到time命令的输出格式以及popen的使用。

time命令默认输出是十分友好的,分别显示了分和秒,但在程序计算时不太“友好”,因而使用-p选项,它直接输出以秒为单位的时间。popen是公司公认的重型武器,一般情况不敢随意使用。测试代码就无所谓了,它主要读取grep得到的时间。另外也涉及到sscanf对浮点数的格式化问题。

脚本实现:

echo "time测试"
time -p sleep 2 2>&1 | tee /tmp/time_log
time=`grep real /tmp/time_log | awk '{print $2}'`

C语言实现:

void simple_test()
{char time_str[128] = {0};float time_f = 0.0;float speed = 0.0;system("time -p sleep 2 2>&1 | tee /tmp/time_log");FILE* fp = NULL;fp = popen("grep real /tmp/time_log | awk '{print $2}'", "r");fread(time_str, sizeof(time_str), 1, fp);pclose(fp);time_str[strlen(time_str) - 1] = '\0';sscanf(time_str, "%f", &time_f);speed = 10.0 / time_f;printf("time_str: %s time_f: %.2f speed: %.2f\n", time_str, time_f, speed);
}

李迟记于2014年5月9日

shell学习笔记二则:统计空间相关推荐

  1. shell学习笔记 (2)

    shell学习笔记 (2) ---china.pub.com  linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...

  2. shell学习笔记 (9.1)

    第9章 AWK   介 绍 ---china.pub.com  linux shell电子书学习笔记 9.1   调用awk 有三种方式调用a w k,第一种是命令行方式,如: awk |-F fie ...

  3. shell学习笔记---工具学习

    . sort工具 . uniq工具 . paste工具 . cut工具 . xargs工具 . sed工具 . awk工具 . find工具 . 模式空间选择空间 # sort工具 # sort将文件 ...

  4. shell学习笔记整理

    Shell编程学习笔记 第一章基础知识 1.脚本格式: 1.1"#!" 这个符号的名称,叫做"Shebang"或者"Sha-bang" &q ...

  5. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  6. [Bash Shell] Shell学习笔记

    1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...

  7. Shell学习笔记---变量赋值与运算(原创)

    声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的. #!/bin/bash #Filename:prameter_parctise2 #Datetime:2010_12_24 09:24 ...

  8. Shell学习笔记一

    Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. 基本上Shell分两大类: 一:图形界面Shell( ...

  9. Shell学习笔记---date_pratice.sh

    声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的. 一个简单的date用法练习脚本!!!!!! #!/bin/bash #Filename:date_practice.sh # Datet ...

最新文章

  1. Python3 与 C# 并发编程之~ Net篇
  2. 《需求设计:构建用户想要和需要的产品》——3.7 品质
  3. opencv-车牌区域提取
  4. CentOS 7 学习(一) 配置LAMP和Nginx
  5. 中兴智能视觉大数据报道:人脸识别准确率高达99.8%
  6. 暗备用的运行状态_瞧:我利用“无偏二极管”发明设计出了【宇宙“暗物质”、“暗能量”探测器】...
  7. ​北京大学吴华君课题组高新诚聘 医学生信 助理研究员和博士后
  8. Python学习:命令行运行,循环结构
  9. LCFinder 0.3.0 Beta 发布,图像标注与目标检测工具
  10. 理解asp.net中DropDownList编辑数据源,绑定数据库数据。
  11. php ddos攻击代码,PHP拦截网站DDOS攻击防御代码
  12. Contacts Provider
  13. P2346 四子连棋 题解
  14. 数据预处理 ToTensor和Normalize
  15. C++ primer plus 第六版 第二章 编程练习答案
  16. keep-alive 组件缓存的用法
  17. MathType怎么编辑等号带点
  18. 组的迷惑行为之 Linux用户的初始用户组(主组,基本组)与有效用户组(附加组)
  19. 我的创作纪念日---祈愿
  20. Linux识别不了希捷移动硬盘,希捷(Seagate)移动硬盘无法识别怎么办?

热门文章

  1. 网易云音乐刷听歌量_「PC端」解锁网易云音乐灰色歌曲,让你听歌不用东跑西跑...
  2. 大幅广告显示隐藏效果
  3. 用PHP制作饼图调查表
  4. 3299元起!结缘梅奔F1车队,Redmi K50电竞版发布
  5. iPhone 13的新对手?小米历史上最好看的手机即将发布
  6. 荣耀V40渲染图曝光 将搭载双曲面瀑布屏
  7. 京东健康暗盘涨幅超27% 成交额超1.6亿港元
  8. 蔚来汽车股票一日成交额达274亿美元 居美股榜首
  9. 35款安卓App被通报窃取个人隐私!快看看你的手机里有没有
  10. 2020骁龙技术峰会即将召开 高通骁龙875要来了?