当前位置: 首页 > Linux

Linux下处理隐私显示操作!

时间:2023-04-06 07:08:28 Linux

每个人都有自己的隐私,尤其是在数字信息时代。小到自己写的情书,大到公司的商业机密,小到偷偷下载的日文XXX.avi。内容——请扔进垃圾桶……谁会这样做?好想要一个工具,自动帮我压缩,放在安全的地方……凉旭今天就带大家走完这个过程。1.工具安装必须实现上述问题已知程序,我们需要安装两个工具:inotify-tools和gzip。如果您使用的是Ubuntu或其他基于Debian的发行版,则可以使用apt-get命令来安装以上两个工具。在其他Linux发行版上,需要使用相应的包管理工具。$sudoapt-getinstallinotify-toolsgzip2。inotify-tools详解顾名思义,inotify-tools是一个包含很多工具的工具集。让我们首先测试如果在目录中创建新文件将捕获什么事件。这里我们将使用一个名为inotifywatchinotify-tools的工具。我们首先创建一个名为incominganywhere的新目录:$mkdirincoming然后执行以下命令开始监视此目录:$inotifywatch-vincoming该命令将使用inotify工具监视incoming目录中的所有文件系统事件。我们使用这个工具的目的是监视在目标目录中创建新文件时会生成哪些事件。在这里,-v选项打印工具的输出。另外,它有一个超时选项-t,但我们没有在这里指定它,所以它会一直收集事件,直到我们按Ctrl+C退出。命令运行后,终端会打印如下信息:接下来,打开一个新的终端窗口,切换到刚刚创建的传入目录。然后使用touch命令创建一个名为newfile的新文件。$cdincoming/$touchnewfile现在我们回到第一个终端窗口并按CTRL+C停止inotifywatch命令。我们会得到如下信息:在结果信息中,我们可以看到inotifywatch捕获了4个事件,包括:attribute、create、open、write和close。这4个事件都是touchnewfile命令产生的。当然,这些事件只是inotifywatch可以捕获的众多事件中的一小部分,更多的事件我们可以在它的首页查看。然而,在很多情况下我们并不需要太多的事件。假设我们只对以下两个事件感兴趣:create:当一个文件在目标目录中被创建时moved_to:当一个文件从另一个位置被移动到目标目录时我们再次使用inotifywatch工具,但是这次只让它监听这两个事件。我们可以使用下面的命令来实现:$inotifywatch-v-ecreate-emoved_toincoming然后切换到第二个终端窗口,我们创建一个新文件,然后改变它的内容。之后,我们在/tmp目录下创建另一个文件,并将其移动到目标目录。整个过程如下命令所示:$touchincoming/created$echoTesting123>>incoming/created$touch/tmp/created2$mv/tmp/created2incoming/然后我们回到第一个终端窗口,按CTRL+C停止inotifywatch。我们将看到如下输出:从上面的结果我们可以看出inotifywatch只捕获了两个事件:create和moved_to。对于其他的事件,比如修改文件内容,都被忽略。正是利用inotifywatch的事件捕获特性,我们可以达到在目录中移动新文件时,将其压缩并放置在别处的目的。这样,我们就可以将我们的私人文件放到那个目录中,自动压缩并存储在一个安全的地方。当然,充分利用这些特性,我们还可以实现更多好玩的功能。3.监控目录并执行脚本下面我们一步步实现上面的需求。这里我们使用另一个工具:inotifywait。其参数和用法与inotifywatch类似。当在目录中创建新文件或将文件移动到另一个位置时,它将执行我们指定的脚本。我们首先创建一个名为processed的目录来存放处理后的文件。$mkdirprocessed然后,创建一个名为watch-incoming.sh的脚本并添加以下内容:#!/bin/bashTARGET=~/incoming/PROCESSED=~/processed/inotifywait-m-ecreate-emoved_to--format"%f"$目标\|whilereadFILENAMEdoechoDetected$FILENAME,movingandzippingmv"$TARGET/$FILENAME""$PROCESSED/$FILENAME"gzip"$PROCESSED/$FILENAME"done该脚本使用inotifywait如果加上-m选项,表示当检测到指定的事件时执行后续命令。在此命令中,inotifywait仅监视create和moved_to事件。当这两个事件发生时,文件名被传递给读取命令并赋值给FILENAME变量,然后执行while循环下的代码块:首先将文件移动到刚刚创建的processed目录,然后gzip。我们赋予脚本可执行权限,然后从主目录运行脚本。$chmodu+xwatch-incoming.sh$./watch-incoming.sh现在打开第二个终端窗口并在传入目录中创建一个新文件。然后列出传入和处理目录的内容,看看运行后的结果。该脚本检测到我们在incoming目录中创建了一个新文件,将其复制到processed目录,并使用gzip对其进行压缩。这个功能实现后,我们可以DIY更多好玩的功能。比如我们可以给图片文件加水印,压缩原始视频为mp4格式,批量修改文件名等等。不怕看不懂,就怕脑洞不够大!---------------我是梁旭,外资500强公司Linux开发工程师,专业从事Linux干货制作。欢迎关注我的公众号“良旭Linux”,回复“1024”获取最新最全的技术资料,回复“进群”进入专家云技术交流群。