近日,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
从归档恢复文件
另请参阅 :
使用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个字符。 第一个字符用于指示文件类型:
- - :普通文件
- -d:目录
- -l:符号链接
- -c:一个字符设备(它把数据作为字节流,即终端)
- -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位数八进制数设置文件的权限时,第一个数字表示所有者的权限,组所有者的第二个数字以及其他所有人的第三个数字:
- 业主 :(R = 22 + W = 21 + X = 20 = 7)
- 集团老板 :(R = 22 + W = 21 + X = 20 = 7)
- 世界 :(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
结论
作为系统管理员,您需要知道如何创建和恢复备份,如何在系统中查找文件并更改其属性,以及一些可以使您的生活更轻松,并防止您遇到未来问题的技巧。
我希望本文中提供的提示将帮助您实现这一目标。 随意在评论部分添加您自己的提示和想法,为社区的利益。 提前致谢!