需求:

压缩日志并删除压缩过的文件

很日常的运维需求!!!

好,来看代码

 echo 'start'
bzip2 -z - quke.log
rm -f quke.log
echo 'delete'

不管是初级运维还是高级运维,都可能会顺手写成这样,看似没毛病

问题来了

[user1@beijing-console ~]$ ls quke.
quke.py quke.sh
[user1@beijing-console ~]$ dd if=/dev/zero of=./quke.log #我生成一个2.1G的文件
^C4079929+ records in
+ records out
bytes (2.1 GB) copied, 9.81969 s, MB/s [user1@beijing-console ~]$ sh quke.sh
start
^C #这是压缩过程中我ctrl+c终止了
bzip2: Control-C or similar caught, quitting.
bzip2: Deleting output file quke.log.bz2, if it exists.
delete # WTF 原日志也给删除了
[user1@beijing-console ~]$ ls quke.
quke.py quke.sh

所以如果以后碰到这种需求,还是要考虑周到一点

echo 'start'
bzip2 -z - quke.log && rm -f quke.log
echo 'delete'

这样就能避免了

不要坑队友 !!!

【bash】今天你坑队友了吗的更多相关文章

  1. 桥接物理网卡,pipwork指定ip,外网连接,研究salt+docker

    1.桥接物理网卡: 首先下载工具: yum -y install --enablerepo=epel bridge-utils 停止服务: 983 systemctl stop docker 删除do ...

  2. javascript 笔记!

    1.通过javascript向文档中输出文本 document是javascript的内置对象,代表浏览器的文档部分 document.write("Hello Javascript&quo ...

  3. .NET 基础 一步步 一幕幕[运算符、占位符、转义符]

      运算符.占位符.转义符 好吧,在五局全胜之后,终于升到了三个钻,距离一个星星还有一大段距离,忽然想起来今天的博客还没写,果断坑队友,来写博客了....感觉以后还是每天更新一篇比较好.要不晚上就该熬 ...

  4. 【转】Android Studio-1.2版本设置教程

    如果重新安装Android Studio的话要重新配置风格选项啥的,这篇是个很好的教程,原文链接:http://blog.csdn.net/skykingf/article/details/45485 ...

  5. 你写的Try...Catch真的有必要么?

    很多人喜欢用Try...Catch把每一个方法都包裹起来,可是真的有必要么? 为什么要这样做?我估计是大家被BUG吓怕了,生怕生产环境出现各种莫名其妙的错误,比如最经典的NullReferenceEx ...

  6. CSS之深入探究Position

    这些天重新整理以前的代码,想对其进行优化,却出现了很多问题,其中一个就是Position,中间自己停下优化代码的工作,特意停下来深入研究了一下Position.现在来分享一下自己的体会吧! 首先我们从 ...

  7. HDU 4113 Construct the Great Wall(插头dp)

    好久没做插头dp的样子,一开始以为这题是插头,状压,插头,状压,插头,状压,插头,状压,无限对又错. 昨天看到的这题. 百度之后发现没有人发题解,hust也没,hdu也没discuss...在acm- ...

  8. Android Studio的简单设置:

    4.关闭更新: 如下图所示: 6.添加api文档悬浮提示: AS默认是没有api文档悬浮提示的,只有按住[Ctrl+Q]太会出现提示.如果要添加api的自动悬浮提示,设置如下: 上图中,在红框部分打钩 ...

  9. Eclipse里面的一些常规设置

    一.Eclipse里面的默认编码是GBK,但是Android开发的编码都是UTF-8,所以一定要修改自己的工程的编码,不要坑队友哦~ (1)选中当前的工程,点击右键,如图选择(这只是改变当前工程的编码 ...

随机推荐

  1. 寄存器CPU存储地址信息和数据信息的地方 CPU通过地址寄存器区分指令和数据

  2. acoj-1735 输油管道 【中位数】

    题目链接:http://acdream.info/problem?pid=1735 输油管道 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 2 ...

  3. javascript的构造函数和实例对象、prototype和__proto__的区别,原型对象及构造器的理解

    一.前言 我们先通过代码来分别打印出实例对象.构造函数,以及修改了原型对象的构造函数,通过对比内部结构来看看他们之间的区别. //定义构造函数 function Person(name, age){ ...

  4. 「红米 2A 标准版」闪屏救砖、更正官方线刷救砖工具

    问题描述 用 ES 浏览器 卸载了内置软件后重启无法开机,停在 MI android 界面并出现屏幕忽明忽暗的现象,无法进入系统. 漫长的救砖探索,直白的解决方案 总体来说,林林总总下了六个 G 的教 ...

  5. jdeveloper12.1.3的安装与卸载

    jdeveloper12.1.3的安装步骤:1>安装jdk7.0 2>在命令行中输入:cd C:\Program Files\Java\jdk1.7.0_60\bin 3>命令行安装 ...

  6. 第四章 Windows的图形设备接口及Windows绘图 P83 4-6

    实验(实习)名称  图形程序设计及其应用  实验(实习)日期 一.实验目的 1.熟悉图形设备接口的概念及其应用. 二.实验内容及步骤  实验任务 1.熟悉基于图形应用的程序设计: 2.掌握刷新技术及其 ...

  7. 详解jQuery的$符号和init函数

    本文所有代码,出自jQuery.1.5.2,为方便理解,引入类的概念,虽然jQuery不是基于面向对象思想. jQuery是现在最流行的JavaScript框架, $是其中最常见的符号,已经在jQue ...

  8. Overflow与块状格式上下文

  9. kaggle-泰坦尼克号Titanic-2

    下面我们再来看看各种舱级别情况下各性别的获救情况 fig = plt.figure() fig.set(alpha=0.5) plt.title(u"根据舱等级和性别的获救情况", ...

  10. Mybatis的select查询的三种方式

    1.首先建立一个测试的dao public interface IStudentDao { // 根据姓名查询 List<Student> selectStudentsByName(Str ...