专栏首页DBA随笔今天的几件事情记录

今天的几件事情记录

01

SQL审核工具定制

最近在做SQL审核的东西,由于SQL审核工具Inception的底层是用C++编写的,重新拾起了C++,发现其中很多东西自己还没有忘记,为了SQL审核更加符合公司的业务逻辑,需要对Inception这个工具做一部分定制,定制的过程主要分为提示信息转义、原有逻辑删除、原有逻辑修改,现有逻辑添加。这两天已经完成了前三个部分,现在剩余最后一部分,现有逻辑添加,此部分需要从代码的底层入手,修改Inception的源代码,从而实现更加完善的SQL审核逻辑。

02

Linux命令之find

1.命令格式:

find pathname -options [-print -exec -ok]

2.命令功能:

    用于在文件树中查找文件,并作出相应的处理。

3.命令参数:

pathname: find 命令所查找的目录路径。譬如用 . 来表示当前目录,用 / 来表示系统根目录。

-print:find 命令将匹配的文件输出到标准输出。

-exec:find 命令对匹配的文件执行该参数所给出的 shell 命令,相应命令的形式为 ’command‘ {} \; ,注意 {} 和 “ \;” 之间的空格。

-ok:   和 -exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的 shell 命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行功能。

4.命令选项:

-name  按照文件名查找文件

-perm  按照文件权限来查找文件

-prune 使用这一选项可以使find 命令不在当前指定的目录中查找,如果同时使用 -depth 选项,那么 -prune 将被 find 命令忽略

-user  按照文件属主来查找文件

-group  按照文件所属的组来查找文件

-mtime -n +n  按照文件的更改时间来查找文件, - n 表示更改时间距现在 n 天以内, + n 表示文件更改时间距现在 n 天以前。

find 命令还有 -atime和-ctime 选项,但他们都和 -m time 选项类似。

-nogroup  查找无有效所属组的文件,即该文件所属的组在 /etc/groups 中不存在。

-nouser  查找无有效属主的文件,即该文件的属主在 /etc/passwd 中不存在。

-newerfile1 ! file2  查找更改时间比文件 file1 新但比文件 file2 旧的文件。

-type   查找某一类型的文件,诸如:

b  块设备文件

d  目录

c  字符设备文件

p  管道文件

l  符号链接文件

f  普通文件

-sizen:[c]  查找文件长度为 n 块的文件,带有 c 时表示文件长度以字节计。

-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件 /etc/fstab 中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount  在查找文件是不跨越文件系统mount点

-follow   如果find 命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio  对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

    另外,下面三个的区别:

-aminn  查找系统中最后N分钟访问的文件

-atimen  查找系统中最后 n*24 小时访问的文件

-cminn  查找系统中最后 N 分钟被改变文件状态的文件

-ctime n  查找系统中最后 n*24小时被改变文件状态的文件

-mminn  查找系统中最后 N 分钟被改变文件数据的文件

-mtimen   查找系统中最后 n*24 小时被改变文件数据的文件  

5.使用实例:

  实例1:查找指定时间内修改过的文件

  命令:

find-atime-2  查找48小时内修改过的文件

  实例2:根据关键字查找

  命令:

find . -name"*.log"  在当前目录查找以 .log 结尾的文件。  “.” 代表当前目录

  实例3:按照目录或文件的权限来查找文件

  命令:

find /opt/soft/test-perm 777   查找/opt/soft/test 目录下, 权限为 777 的文件

  实例4:按照类型查找

  命令:

find . -type f -name "*.log"  查找当前目录中以 .log 结尾的 普通文件

  实例5:查找当前所有目录并排序

  命令:

find . -typed | sort  组合命令,其实只要知道 find [PATH] [option] [argument] 就可以了, “| 管道” “sort” 命令随时可以跟任何命令组合使用。

  实例6:按大小查找文件

  命令:

find . -size +1000c-print

一个牛逼的命令: find . -name "*.*"|xargs grep "目标" 该命令可以在当前文件夹下的所有文件中寻找包含目标关键字的文件以及具体目标位置,主要可以应用在一个开源工程中寻找main函数。

03

Linux命令之chattr

此命令主要是用来改变文件的属性,此命令可以锁定文件,使得root用户也无法更改文件中的内容。

和chmod命令的区别:chmod命令只改写文件的读,写,执行权限,而chattr命令可以控制文件更底层的属性。

该命令的几种模式:

a:append,让文件或目录只能追加,不能删除;

b:不更新文件或目录的最后存取时间;

c:compress将文件或目录压缩后存放;

d:no dump将文件或目录排除在dump操作之外;

i:不得任意更动文件或目录;

s:保密性删除文件或目录,即硬盘空间被全部收回;

S:即时更新文件或目录;

u:预防意外删除,数据内容其实还存在磁盘中,可以用于undeletion。

应用举例:

1、用chattr命令防止系统中某个关键文件被修改: # chattr +i /etc/resolv.conf

然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件就要把i属性去掉: chattr -i /etc/resolv.conf

2、让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件: # chattr +a /var/log/messages

本文分享自微信公众号 - DBA随笔(gh_acc2bbc0d447),作者:AsiaYe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux中的查找文件方法

    一、which which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。 也就是说它返回的是你该命令所处的位置。...

    AsiaYe
  • MySQL大库搭建主从的一种思路

    这个周忙的就像打仗一样,感觉有点被别人牵着鼻子走了,每天都是早出晚归,干不完的活儿,有时候感觉DBA这碗饭真的不好吃,要有强大的抗压能力和心理承受能力。今...

    AsiaYe
  • 一个有意思的MySQL索引案例

    假设这个表有100w数据,其中有10w行b的值都是'1234567890'这个字符串,此时我们执行:

    AsiaYe
  • Linux中的查找文件方法

    一、which which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。 也就是说它返回的是你该命令所处的位置。...

    AsiaYe
  • Linux常用命令(二)

    Linux 系统中用于查找文件的命令有 find ,locate,whereis, which,type

    小土豆Yuki
  • Linux下一些常用的命令(随时更新)

    文件操作 打包,排除部分目录 tar -zcvf www_20170426.tar.gz www --exclude=file 解压,并重命名 tar -x...

    小柒2012
  • Hacker基础之Linux篇:基础Linux命令三

    我们继续学习Linux 1. find find命令用来在指定目录下查找文件,任何位于参数之前的字符串都将被视为欲查找的目录名。 如果使用该命令时,不设置任何参...

    用户1631416
  • 掌握Android Studio项目结构,扬帆起航

    经过前面的学习,Android Studio开发环境已准备OK,运行Android应用程序的原生模拟器和Genymotion模拟器都准备妥当。在之前简单...

    分享达人秀
  • 高级CLI:开发都人员应该知道的命令

    在本文中,我们不会介绍ls,rm和cd等基本命令。看到这些命令应该不会令您感到震惊。您甚至可能对它们非常熟悉,特别是如果您非常了解命令行的方式。我假设您之前至少...

    用户6543014
  • Linux学习笔记(Ubuntu操作系统)之hadoop学习之路

    1:检查虚拟机的ip命令:ifconfig 2:普通用户切换root用户命令:su 3:root用户切换普通用户命令:su 用户名 4:普通用户执行系统执行前面...

    别先生

扫码关注云+社区

领取腾讯云代金券