在awk中如何使用或赋值shell的变量

写shell脚本处理文本的时候,经常用到awk来配合shell命令。但是awk的大括号中和shell貌似是两个世界。本文只介绍最容易理解的方法(作者水平有限,复杂的以后可能补充),来实现awk对shell变量的使用和更改。

如果我们将awk看成变成语言中的函数,或者一个封装,那么要使用或者修改外部的变量,其实就是输入参数和输出返回值的问题。对于使用shell变量,其实就是shell变量怎么作为参数传入awk的问题;而对于awk给shell变量赋值,可以看成awk输出返回值的问题。

awk中使用shell变量

awk传入参数的选项是-v [awk_var=$SHELL_VAR],应该加在’ ‘包围的awk主体程序之前。 阅读全文

The UAPI header file split 翻译:内核源码中UAPI头文件分割

在LWN.net上的一篇文章,The UAPI header file split(By Michael Kerrisk July 25, 2012)。原文链接:https://lwn.net/Articles/507794/

这个特性已经在3.7版本中被Linus大神接受[详情]。。。Linus大神如是说:

the “uapi” include file cleanups. The idea is that the stuff exported to user space should now be found under include/uapi and arch/$(ARCH)/include/uapi.

Let’s hope it actually works. Because otherwise this was just a
totally pointless pain in the *ss. And regardless, I’m definitely done
with these kinds of “let’s do massive cleanup of the include files”
forever.

下面我逐段意译一下文章。。。 阅读全文

In-kernel memory compression 翻译:内核内实现的内存压缩

(发布于 April 3, 2013, 意译于12/9/2016)

  • 原文链接 :https://lwn.net/Articles/545244/
  • 另一个版本的翻译(有些句子没有翻): http://kernel.taobao.org/index.php?title=%E5%86%85%E6%A0%B8%E6%9C%88%E6%8A%A52013-04#In-kernel_memory_compression
  • 吐槽 : 我的天呐!!翻译完我才发现有人翻译过了,早知道我就不自己翻译了,痛苦死我了。。
  • :内容我还没有完全理解,仅供参考,以原文为准。

阿姆达尔定律告诉我们一个计算机系统肯定存在一个瓶颈。历史上,对于很多工作负载这个瓶颈都是cpu,所以人们在不断提升cpu性能。所以现在,渐渐地,ram成为了瓶颈。有时当数据在ram和disk之间来回传递时,cpu就在一边干瞪眼呢。增大ram有时并不是一个好的或者经济的做法,更快的I/O或者ssd可以缓解问题,但是不能消除这个瓶颈。

如果可以增大ram中数据的有效容量,不是很好吗?既然cpu闲置,也许我们可以拿闲置的cpu周期来专注这件事。这就是内核内压缩的目标:用闲置的cpu周期来做ram中的压缩和解压缩。 阅读全文

Shell脚本中进行多行注释的方法

我发现。。shell脚本貌似不像C或者Python一样自带注释语法,不过拐弯抹角还是有一些方法的。。囧

方法1:利用逻辑语句

利用了逻辑语句的执行顺序,缺点是注释中不能出现括号,否则会报错!

阅读全文

两台服务器间SSH或SCP实现无密码登录或文件传输

最近由于需要实现从一个客户端电脑定时远程上传图片到阿里云服务器的功能,需要实现SCP的免密码传输。所以查资料并做了一个记录,希望对大家有帮助。

步骤

1.Client上某用户执行ssh-keygen命令,生成建立安全信任关系的证书

阅读全文

Jc的sed简单入门/sed命令总结

这是我学习sed的一个总结,只限于自己和比我水平低(就是没接触过)的同学看。。。除了参考资料,讲解也包括很大成分的个人理解,如果发现错误,希望大家可以提醒我及时更正,谢谢~!

sed概述

sed是一个流编辑器,更准确的说是一个行编辑器,就是sed处理文本处理命令用于逐行处理文本中的文字。

这是sed命令的格式: sed [options] [commands] [input-file] 阅读全文

python自动化运维笔记(1)—-psutil

环境:ubuntu 14.04 32bit

工具:psutil

安装:

采用pip可以安装pip install psutil。(注意需要安装python-dev: sudo apt-get install python-dev)

用法举例:

获取信息

cpu信息:

阅读全文

python自动化运维笔记(2)—-dnspython

准备工作

  • 环境:Ubuntu 14.04 32bit
  • 工具:dnspython
    对应的shell工具:nslookup dig等

  • dns预备知识:
    常用资源记录RR(Resource Records)类型
    A记录: 主机名–> IP地址
    MX记录: 定义邮件服务器域名
    CNAME: 域名间映射
    PTR: IP地址 –>主机名(反向解析)

    更详细介绍参考博文《 [DNS]常见资源记录定义(Resource Record) 阅读全文