LFCS:如何存档/压缩文件和目录,在Linux中设置文件属性和查找文件 - 第3部分

近日,Linux基金会启动了LFCS(Linux基金会认证的系统管理员 )的认证,一个全新的计划,其目的是让来自五湖四海的人有机会获得考试,而如果获得批准,证明该人是在执行懂行基本到Linux系统上的中间系统管理任务。 这包括支持已运行的系统和服务,以及第一级故障排除和分析,以及决定何时将问题上报给工程团队的能力。

Linux基础认证Sysadmin - 第3部分

请观看下面的视频,了解Linux基础认证计划。

这篇文章是10教程系列的第3部分,在这一部分,我们将介绍如何归档/压缩文件和目录,设置文件属性和查找文件系统上的文件,这是LFCS认证考试所需的。

存档和压缩工具

文件归档工具将一组文件分组到一个单独的文件中,我们可以将其备份到多种类型的介质,通过网络传输或通过电子邮件发送。 在Linux中使用最频繁的归档工具是tar 当归档实用程序与压缩工具一起使用时,它允许减少存储相同文件和信息所需的磁盘大小。

tar实用程序

tar捆绑一组文件整合到一个单一存档(通常称为tar文件压缩包或)。 该名称原来是磁带存档器,但我们必须注意,我们可以使用此工具将数据存档到任何类型的可写介质(不仅仅是磁带)。 tar通常与压缩工具使用如gzip,bzip2 ,或XZ以产生压缩的包。

基本语法:
# tar [options] [pathname ...]

其中...表示用于指定哪些文件应该在采取行动的表达。

最常用的tar命令
长选项 缩写 描述
-创建 C 创建tar存档
连接 一个 将tar文件附加到归档
-附加 r 将文件附加到归档的结尾
- 更新 u 在归档中附加比拷贝更新的文件
-diff或-compare d 查找存档和文件系统之间的差异
文件存档 F 使用归档文件或设备ARCHIVE
列表 t 列出tarball的内容
-extract或-get X 从归档中提取文件
通常使用的操作修改器
长选项 缩写 描述
目录目录 C 在执行操作之前更改目录dir
-same-permissions p 保留原始权限
-verbose v 列出所有读取或提取的文件。 当此标志与-list一起使用时,将显示文件大小,所有权和时间戳。
-校验 W 在写入后验证存档
-exclude文件 - - 从归档中排除文件
-exclude = pattern X 排除文件,作为PATTERN给出
-gzip或-gunzip z 通过gzip处理归档
-bzip2 j 通过bzip2处理归档
-xz J 通过xz处理归档

gzip的是最老的压缩工具和提供至少压缩,而bzip2的提供了改进的压缩。 此外,XZ是最新的,但(通常)提供了最佳的压缩。 最佳压缩的这些优点是以一个价格:完成操作所需的时间,以及在该过程期间使用的系统资源。

通常情况下,这些实用程序tar压缩文件有。广州操作.bz2.xz扩展,分别。 在下面的例子中,我们将使用这些文件:file1,file2,file3,file4和file5。

使用gzip,bzip2和xz进行分组和压缩

集团在当前工作目录下的所有文件和压缩用gzip,bzip2 ,和XZ产生的包(请注意,使用正则表达式来指定哪些文件应该被包含在捆绑-这是为了防止归档工具组在之前的步骤中创建的tarball)。

# tar czf myfiles.tar.gz file[0-9]
# tar cjf myfiles.tar.bz2 file[0-9]
# tar cJf myfile.tar.xz file[0-9]

压缩多个文件

列出tarball的内容并更新/附加文件到bundle中

列出tarball的内容,并显示与长目录列表相同的信息。 请注意, 更新追加操作不能直接应用于压缩文件(如果您需要更新或文件追加到一个tar包,你需要解压tar文件和更新/追加到它,然后再压缩)。

# tar tvf [tarball]

列出存档内容

运行以下命令:

# gzip -d myfiles.tar.gz	[#1] 
# bzip2 -d myfiles.tar.bz2	[#2] 
# xz -d myfiles.tar.xz 		[#3] 

然后

# tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
# tar --update --file myfiles.tar file4 (adds the updated file)

# gzip myfiles.tar		[ if you choose #1 above ]
# bzip2 myfiles.tar		[ if you choose #2 above ]
# xz myfiles.tar 		[ if you choose #3 above ]

最后,

# tar tvf [tarball] #again

并具有相同的信息的比较结果为前面所示file4将的修改日期和时间。

排除文件类型

假设你要执行用户的目录的备份。 一个良好的系统管理员做法是(也可以由公司策略指定)从备份中排除所有视频和音频文件。

也许你的第一个办法是从备份中排除与.MP3.MP4的扩展名(或其它扩展名)的所有文件。 如果你有谁可以扩展名更改为.txt.bkp一个聪明的用户是什么,你的方法不会做你多好。 为了检测音频或视频文件,您需要检查其文件类型与文件。 以下shell脚本将执行此作业。

#!/bin/bash
# Pass the directory to backup as first argument.
DIR=$1
# Create the tarball and compress it. Exclude files with the MPEG string in its file type.
# -If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
# -If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

排除tar中的文件

使用tar保留权限恢复备份

然后,您可以使用以下命令将备份恢复到原始用户的主目录(本示例中为user_restore),以保留权限。

# tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

从归档恢复文件

另请参阅

  1. 18 tar命令示例在Linux
  2. Dtrx - 用于Linux的智能归档工具

使用find命令搜索文件

find命令是用来通过目录树的文件或符合特定特征的目录递归搜索,然后可打印匹配的文件或目录或在比赛进行其他操作。

通常,我们将按名称,所有者,组,类型,权限,日期和大小进行搜索。

基本语法:

#find [directory_to_search] [expression]

根据大小递归查找文件

查找当前目录(。)2个子目录下的所有文件(-f)(3 -maxdepth包括当前的工作目录和2级向下)的大小(-size)是大于2 MB。

# find . -maxdepth 3 -type f -size +2M

基于大小查找文件

查找和删除与特定条件匹配的文件

777权限的文件有时被认为是一个开放的大门,外部攻击者。 无论哪种方式,让任何人对文件做任何事都是不安全的。 我们将采取相当积极的方法,删除它们! (“{}”+是用来“收集”的搜索结果)。

# find /home/user -perm 777 -exec rm '{}' +

使用777Permission查找文件

按atime或mtime查找文件

搜索超过6个月前或刚好6个月前(180)已访问配置文件中的/ etc(-atime)或修改(-mtime)更多(180)或更小(-180)。

根据下面的示例修改以下命令:

# find /etc -iname "*.conf" -mtime -180 -print

查找修改的文件

另请阅读Linux的“查找”命令的35实际的例子

文件权限和基本属性

LS -l是文件属性的输出端的前10个字符。 第一个字符用于指示文件类型:

  1. - :普通文件
  2. -d:目录
  3. -l:符号链接
  4. -c:一个字符设备(它把数据作为字节流,即终端)
  5. -b:块设备(在块处理数据,即存储设备)

文件属性的下九个字符被称为文件模式,并表示读取(r),(w)和执行(x)文件的所有者,文件的组所有者,而其余用户的权限(通常简称“世界”)。

虽然对文件的读取权限允许打开和读取该文件,但是如果还设置了执行许可,则对目录的相同许可允许列出其内容。 此外,文件中的执行权限允许将其作为程序处理并运行,而在目录中,它允许将其编入其中。

文件权限更改使用chmod命令,其基本语法如下:

# chmod [new_mode] file

new_mode或者是一个八进制数,或指定新权限的表情。

八进制数可以从其二进制等效值转换,该值是根据所有者,组和世界的所需文件权限计算的,如下所示:

一定的许可的存在等于2的幂(R = 22,W = 21,X = 20),而其不存在等于0。 例如:

文件权限

要以八进制形式设置文件的权限,请键入:

# chmod 744 myfile

您也可以使用表示以字母U,组所有者与字母G的权利,并与其余人的权利的表达式设置文件的模式。 所有这些“ 个人 ”都可以在同一时间与字母A来表示。 分别的迹象, -权限授予(或撤销)的+或。

撤消对所有用户的shell脚本的执行权限

正如我们之前所述,我们可以撤销前面加上减号的某个权限,并指明是否需要为所有者,组所有者或所有用户撤销该权限。 该单行下面可以解释如下:对于所有( )用户更改模式,撤销( - )执行权限(X)。

# chmod a-x backup.sh

授予文件对所有者和组所有者的读取,写入和执行权限,以及对该世界的读取权限。

当我们使用3位数八进制数设置文件的权限时,第一个数字表示所有者的权限,组所有者的第二个数字以及其他所有人的第三个数字:

  1. 业主 :(R = 22 + W = 21 + X = 20 = 7)
  2. 集团老板 :(R = 22 + W = 21 + X = 20 = 7)
  3. 世界 :(R = 22 + W = 0 + X = 0 = 4),
# chmod 774 myfile

在时间和实践中,您将能够决定哪种方法更改文件模式在每种情况下最适合您。 长目录列表还显示文件的所有者及其组所有者(作为系统中文件的基本但有效的访问控制):

Linux文件列表

文件所有权与chown命令改变。 所有者和组所有者可以同时更改或单独更改。 其基本语法如下:

# chown user:group file

其中至少需要用户或组。

几个例子

将文件的所有者更改为某个用户。

# chown gacanepa sent

将文件的所有者和组更改为特定用户:组对。

# chown gacanepa:gacanepa TestFile

仅将文件的组所有者更改为特定组。 注意组名前面的冒号。

# chown :gacanepa email_body.txt

结论

作为系统管理员,您需要知道如何创建和恢复备份,如何在系统中查找文件并更改其属性,以及一些可以使您的生活更轻松,并防止您遇到未来问题的技巧。

我希望本文中提供的提示将帮助您实现这一目标。 随意在评论部分添加您自己的提示和想法,为社区的利益。 提前致谢!

参考链接
  1. 关于LFCS
  2. 为什么要获得Linux基础认证?
  3. 注册LFCS考试
成为Linux认证的系统管理员
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏