博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文本文件查找 计划任务
阅读量:4707 次
发布时间:2019-06-10

本文共 7807 字,大约阅读时间需要 26 分钟。

NSD ADMIN DAY07

1 案例1:查找并提取文件内容

1.1 问题

本例要求在文件/usr/share/dict/words中查找到所有包含字符串seismic的行,并满足下列要求:

  1. 将找到的行按原文顺序拷贝到 /root/wordlist 文件中
  2. 文件 /root/wordlist 不要包含空行,并且其中所有行的内容必须是 /usr/share/dict/words 文件中原始行的准确副本

1.2 步骤

实现此案例需要按照如下步骤进行。

1)使用grep命令查找指定的关键词,并通过重定向输出保存到指定的文件:

  1. [root@serverX ~]# grep 'seismic' /usr/share/dict/words > /root/wordlist

2)确认提取结果

  1. [root@server0 ~]# cat /root/wordlist
  2. anaseismic
  3. antiseismic
  4. aseismic
  5. aseismicity
  6. bradyseismic
  7. .. ..

2 案例2:查找并处理文件

2.1 问题

本例要求采用不少于两种方法完成以下任务:

  1. 找出所有用户 student 拥有的文件
  2. 把它们拷贝到 /root/findfiles/ 文件夹中

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:确认能找到指定的文件

1)确认新版内核的下载地址

  1. [root@server0 ~]# find / -user student -type f
  2. find: ‘/proc/1853/task/1853/fdinfo/6’: 没有那个文件或目录
  3. find: ‘/proc/1853/fdinfo/6’: 没有那个文件或目录
  4. /var/spool/mail/student
  5. /home/student/.bash_logout
  6. /home/student/.bash_profile
  7. /home/student/.bashrc
  8. /home/student/.ssh/authorized_keys
  9. /home/student/.config/gnome-initial-setup-done
  10. /home/student/.config/monitors.xml

对于上述操作中出现的/proc信息忽略即可。

步骤二:处理找到的文件

1)创建目标文件夹

  1. [root@server0 ~]# mkdir /root/findfiles

2)拷贝找到的文件到目标文件夹

以下两种方法任选一种:

  1. [root@server0 ~]# find / -user student -type f -exec cp -p {} /root/findfiles/ \;
  2. .. ..
  3. 或者
  4. [root@server0 ~]# \cp -p $(find / -user student -type f) /root/findfiles/
  5. .. ..

3)确认拷贝结果

  1. [root@server0 ~]# ls -lhA /root/findfiles/
  2. 总用量 24K
  3. -rw-------. 1 student student 1.7K 7月 11 2014 authorized_keys
  4. -rw-r--r--. 1 student student 18 1月 29 2014 .bash_logout
  5. -rw-r--r--. 1 student student 193 1月 29 2014 .bash_profile
  6. -rw-r--r--. 1 student student 231 1月 29 2014 .bashrc
  7. -rw-r--r--. 1 student student 4 7月 11 2014 gnome-initial-setup-done
  8. -rw-r--r--. 1 student student 1.5K 7月 11 2014 monitors.xml
  9. -rw-rw----. 1 student mail 0 7月 11 2014 student

3 案例3:配置一个cron任务

3.1 问题

本例要求为用户 natasha 配置一个定时任务,具体要求如下:

  1. 每天在本地时间 14:23 执行
  2. 需要完成的任务操作为 /bin/echo hiya

3.2 方案

配置格式可参考 /etc/crontab 文件:

  1. 分 时 日 月 周 任务命令行(绝对路径)

在表示各段的时间点时,除了明确的数值以外,还可以参考以下形式:

  • *:匹配范围内任意时间
  • ,:分隔多个不连续的时间点
  • -:指定连续时间范围
  • /n:指定时间频率,每n ...

3.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:配置crontab任务记录

1)确保系统服务crond可用

  1. [root@server0 ~]# systemctl restart crond
  2. [root@server0 ~]# systemctl enable crond

2)为用户natasha添加计划任务

  1. [root@server0 ~]# crontab -e -u natasha
  2. 23 14 * * * /bin/echo hiya

步骤二:检查任务是否执行

1)将系统日期时间临时调整到任务时间点前10秒左右

  1. [root@server0 ~]# date -s '14:22:50'             //设置
  2. Sat Nov 26 14:22:50 CST 2016
  3. [root@server0 ~]# date                             //确认日期时间
  4. Sat Nov 26 14:22:55 CST 2016

2)等待10秒后查看/var/log/cron日志,应该会有执行记录

  1. [root@server0 ~]# tail /var/log/cron
  2. .. ..
  3. Nov 26 14:23:02 localhost CROND[3818]: (natasha) CMD (/bin/echo hiya)

3)恢复系统日期时间

  1. [root@server0 ~]# hwclock -s                     //重设为系统时钟
  2. [root@server0 ~]# date                             //确认日期时间
  3. Sat Nov 26 05:05:23 CST 2016

4 案例4:Linux管理员 综合测试

4.1 问题

根据本文提供的练习步骤完成所有练习案例。

4.2 方案

开始练习之前,先依次重置虚拟机环境。

  1. [root@room9pc13 ~]# rht-vmctl reset classroom
  2. [root@room9pc13 ~]# rht-vmctl reset server

4.3 步骤

实现此案例需要按照如下步骤进行。

步骤01:配置一个用户

案例概述:

创建一个名为alex的用户,用户ID是 3456。密码是flectrag

  1. [root@server0 ~]# useradd -u 3456 alex
  2. [root@server0 ~]# echo flectrag | passwd --stdin alex

步骤02:创建用户账号和组

案例概述:

创建下列用户、组以及和组的成员关系:

  • 一个名为adminuser的组
  • 一个名为natasha的用户,其属于adminuser,这个组是该用户的从属组
  • 一个名为harry的用户,属于adminuser,这个组是该用户的从属组
  • 一个名为sarah的用户,其在系统中没有可交互的shell,并且不是adminuser组的成员用户
  • natasha、harry、和sarah的密码都要设置为flectrag
  1. [root@server0 ~]# groupadd adminuser                             //添加组
  2. [root@server0 ~]# useradd -G adminuser natasha                 //添加用户
  3. [root@server0 ~]# useradd -G adminuser harry
  4. [root@server0 ~]# useradd -s /sbin/nologin sarah
  5. [root@server0 ~]# echo flectrag | passwd --stdin natasha     //设置密码
  6. [root@server0 ~]# echo flectrag | passwd --stdin harry
  7. [root@server0 ~]# echo flectrag | passwd --stdin sarah

步骤03:配置文件 /var/tmp/fstab 的权限

案例概述:

拷贝文件/etc/fstab到/var/tmp/fstab,配置文件/var/tmp/fstab的权限:

  • 文件/var/tmp/fstab的拥有者是root用户
  • 文件/var/tmp/fstab属于root组
  • 文件/var/tmp/fstab对任何人都不可执行
  • 用户natasha 能够对文件/var/tmp/fstab执行读和写操作
  • 用户harry 对文件/var/tmp/fstab既不能读,也不能写
  • 所有其他用户(当前的和将来的)能够对文件/var/tmp/fstab进行读操作
  1. [root@server0 ~]# cp /etc/fstab /var/tmp/fstab                     //复制文件
  2. [root@server0 ~]# setfacl -m u:natasha:rw /var/tmp/fstab         //添加个别用户权限
  3. [root@server0 ~]# setfacl -m u:harry:- /var/tmp/fstab

步骤04:配置一个 cron 任务

案例概述:

为用户natasha配置一个定时任务,每天在本地时间14:23时执行以下命令:

/bin/echo hiya

解题参考:

  1. [root@server0 ~]# systemctl restart crond
  2. [root@server0 ~]# systemctl enable crond
  3. [root@server0 ~]# crontab -e -u natasha
  4. 23 14 * * * /bin/echo hiya

步骤05:创建一个共享目录

案例概述:

创建一个共享目录/home/admins ,特性如下:

  • /home/admins目录的组所有权是adminuser
  • adminuser组的成员对目录有读写和执行的权限。除此之外的其他所有用户没有任何权限(root 用户能够访问系统中的所有文件和目录)
  • 在/home/admins目录中创建的文件,其组所有权会自动设置为属于adminuser组
  • [注]此处所谓的共享目录并不是指网络共享,只是某个组成员共用

解题参考:

  1. [root@server0 ~]# mkdir /home/admins
  2. [root@server0 ~]# chown :adminuser /home/admins
  3. [root@server0 ~]# chmod ug+rwx,o-rwx /home/admins         //调整权限
  4. [root@server0 ~]# chmod g+s /home/admins                     //设置Set UID权限

步骤06:安装内核的升级

案例概述:

新版内核文件从以下地址获取:

http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/

  • 升级你的系统的内核版本,同时要满足下列要求:
  • 当系统重新启动之后升级的内核要作为默认的内核
  • 原来的内核要被保留,并且仍然可以正常启动

解题参考:

  1. [root@server0 ~]# firefox \
  2. http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/
  3.                                 //根据所给地址找到内核文件,复制其下载地址
  4. [root@server0 ~]# wget \
  5. http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm
  6. [root@server0 ~]# rpm -ivh kernel-3.10*.rpm             //安装新内核(耐心等...)
  7. [root@server0 ~]# reboot                                 //重启以使新内核生效
  8. [root@server0 ~]# uname -r
  9. 3.10.0-123.1.2.el7.x86_64                                 //确认新内核版本

步骤07:绑定到外部验证服务

案例概述:

系统 classroom.example.com 提供了一个 LDAP 验证服务。您的系统需要按照以下要求绑定到这个服务上:

  • 验证服务器的基本 DN 是:dc=example,dc=com
  • 帐户信息和验证信息都是由 LDAP 提供的
  • 连接要使用证书进行加密,证书可以在下面的链接中下载 :
  • http://classroom.example.com/pub/example-ca.crt
  • 当正确完成配置后,用户 ldapuser0 应该能够登录到您的系统中,但是没有主目录。当您完成 autofs的题目之后,才能生成主目录
  • 用户ldapuser0的密码是password

解题参考:

  1. [root@server0 ~]# yum -y install sssd
  2. [root@server0 ~]# authconfig-tui                             //使用简易配置工具

根据提示完成用户和认证方式设置 ——

User Information:[*] Use LDAP

Authentication Method:[*] Use LDAP Authentication

根据提示选中 [*] Use TLS,并设置下列参数 ——

Server:classroom.example.com

Base DN:dc=example,dc=com

提示下载证书到 /etc/openldap/cacerts 目录时,另开一终端执行:

  1. [root@server0 ~]# cd /etc/openldap/cacerts/             //进入CA机构证书目录
  2. [root@server0 ~]# wget http://classroom.example.com/pub/example-ca.crt

然后回到 authconfig-tui 工具确认,稍等片刻即可。

  1. [root@server0 ~]# systemctl restart sssd
  2. [root@server0 ~]# systemctl enable sssd
  3. [root@server0 ~]# id ldapuser0                         //验证LDAP用户可用
  4. uid=1700(ldapuser0) gid=1700(ldapuser0) groups=1700(ldapuser0)

步骤08:家目录漫游

案例概述:

按照下述要求配置手动挂载 LDAP 用户的主目录:

  • classroom.example.com(172.25.254.254)通过 NFS 输出 /home/guests 目录到您的系统,这个文件系统包含了用户ldapuser0的主目录,并且已经预先配置好了
  • ldapuser0用户的主目录是 classroom.example.com:/home/guests/ldapuser0
  • ldapuser0的主目录应该挂载到本地的/home/guests/ldapuser0 目录下
  • 用户对其主目录必须是可写的
  • ldapuser0用户的密码是password

解题参考:

  1. [root@server0 ~]# mkdir /home/guest/ldapuser0
  2. [root@server0 ~]# mount classroom.example.com:/home/guests/ldapuser0 /home/guests/ldapuser0         //挂载LDAP家目录
  3. [root@server0 ~]# su - ldapuser0 -c 'pwd'             //验证结果
  4. /home/guests/ldapuser0

步骤09:配置NTP网络时间客户端

案例概述:

配置您的系统,让其作为一个 classroom.example.com 的 NTP 客户端

解题参考:

  1. [root@server0 ~]# yum -y install chrony
  2. [root@server0 ~]# vim /etc/chrony.conf
  3. #server 0.rhel.pool.ntp.org iburst                     //注释掉不可用server配置,
  4. #server 1.rhel.pool.ntp.org iburst
  5. #server 2.rhel.pool.ntp.org iburst
  6. #server 3.rhel.pool.ntp.org iburst
  7. server classroom.example.com iburst                     //添加新的配置
  8. .. ..
  9. [root@server0 ~]# systemctl restart chronyd
  10. [root@server0 ~]# systemctl enable chronyd

步骤10:查找文件

案例概述:

找出所有用户student拥有的文件,并且把它们拷贝到/root/findfiles 目录中

解题参考:

  1. [root@server0 ~]# mkdir /root/findfiles
  2. [root@server0 ~]# find / -user student -type f -exec cp -p {} /root/findfiles/ \;

步骤11:查找一个字符串

案例概述:

在文件/usr/share/dict/words中查找到所有包含字符串seismic的行:

  • 将找出的行按照原文的先后顺序拷贝到/root/wordlist文件中
  • /root/wordlist文件不要包含空行,并且其中的所有行的内容都必须是 /usr/share/dict/words文件中原始行的准确副本

解题参考:

  1. [root@server0 ~]# grep 'seismic' /usr/share/dict/words > /root/wordlist

步骤12:创建一个归档

案例概述:

创建一个名为 /root/backup.tar.bz2 的归档文件,其中包含 /usr/local 目录中的内容,tar 归档必须使用 bzip2 进行压缩

解题参考:

  1. [root@server0 ~]# tar -jcPf /root/backup.tar.bz2 /usr/local/

转载于:https://www.cnblogs.com/tiki/p/10783047.html

你可能感兴趣的文章
SVPWM实现概述
查看>>
Android实现隐藏状态栏和标题栏
查看>>
Vue疑难杂症
查看>>
常用的JQuery数字类型验证正则表达式
查看>>
golang在Windows下Sublime Text开发调试环境的配置
查看>>
spring boot 错误处理之深度历险
查看>>
PHP扩展开发WINDOWS配置
查看>>
Screen2EXE录屏|录制视频
查看>>
二十. StringFromFile与counter函数
查看>>
sqlserver 数据库 的数据库个数统计 表个数统计 表的数据量统计(转载)
查看>>
C++生成随机数
查看>>
raphael 支持group(简)
查看>>
poj 3050 Hopscotch(暴力+dfs)
查看>>
USACO SEC.1.3 No.2 Barn Repair
查看>>
Nginx编译安装、启动、配置详解——1.8.1版本
查看>>
this.$router 和this.$route 的区别
查看>>
Linux--Centos7开机启动 mysql5.7.19
查看>>
2018-2019-1 20165220 《信息安全系统设计基础》第6周学习总结
查看>>
Java 获取汉字串首字母并大写和获取汉字的全拼,英文字符不变
查看>>
《构建之法》前三章的读后感
查看>>