【定时任务规则】

1. 如果在某用户的crontab文件中有以下记录,该行中的命令多久执行一次(RHCE考试题)?( ) 30 4 * * 3 mycmd

A. 每小时。 B. 每周。 C. 每年三月中每小时一次。

解答:

每周三的4点30分,执行mycmd。B

2. 如果在某用户的crontab文件中有以下记录,该行中的命令多久执行一次(RHCE考试题)?( )*/5 * * * * mycmd

A. 每5分钟一次。 B. 每小时过5分钟。 C. 不会运行,格式无效。

解答:

每隔5分钟,执行mycmd。

3. 每隔1分钟,打印一个+号到oldboy.log,请给出crontab完整命令。

解答:

echo 'echo "+">>oldboy.log' > oldboy_log.sh

crontab -e

*/1 * * * * /bin/sh oldboy_log.sh >/dev/null 2>&1

4. 每隔2个小时将/etc/services文件打包备份到/tmp下(最好每次备份成不同的备份包)。

解答:

# 命令行测试:
[root@oldboy etc]# cd /etc
[root@oldboy etc]# tar zcf /tmp/services_bak_`date +%F-%H`.tar.gz ./services # 检查tar命令执行结果:
[root@oldboy etc]# ll /tmp/services_bak_2019-09-13-13.tar.gz
-rw-r--r-- 1 root root 127304 Sep 13 13:08 /tmp/services_bak_2019-09-13-13.tar.gz # 编写脚本:
[root@oldboy /]# mkdir /server/scripts -p
[root@oldboy /]# cat /server/scripts/services_bak.sh
#/bin/sh
cd /etc
/bin/tar zcf /tmp/services_bak_`date +%F-%H`.tar.gz ./services # 测试脚本:
[root@oldboy /]# /bin/sh /server/scripts/services_bak.sh
[root@oldboy /]# ll /tmp/services_bak_2019-09-13-13.tar.gz
-rw-r--r-- 1 root root 127304 Sep 13 13:14 /tmp/services_bak_2019-09-13-13.tar.gz # 编辑crontab:
[root@lb01 scripts]# crontab -e
## tar file '/etc/services' to /tmp every 2 hours by zoe at 20190913
00 */2 * * * /bin/sh /server/scripts/services_bak.sh >/dev/null 2>&1 # 调试contab:利用date命令调整时间,最好关闭定时任务的时间同步来做测试
[root@oldboy tmp]# date -s '20180101 00:00'
[root@oldboy tmp]# ll /tmp/services_bak_2018-01-01-00.tar.gz
-rw-r--r-- 1 root root 127304 Jan 1 2018 /tmp/services_bak_2018-01-01-00.tar.gz

5. 每天晚上12点,打包站点目录/var/www/html备份到/data目录下(最好每次备份按时间生成不同的备份包)

解答:

# (1) 命令行测试
[root@oldboy /]# cd /var/www/
[root@oldboy www]# tar zcvf /data/var_www_html_bak_`date +%F`.tar.gz ./html
./html/
./html/index.html
[root@oldboy www]# ll /data/var_www_html_bak_2019-09-13.tar.gz
-rw-r--r-- 1 root root 160 Sep 13 13:37 /data/var_www_html_bak_2019-09-13.tar.gz # (2) 编写脚本
[root@oldboy scripts]# cat /server/scripts/html_bak.sh
#/bin/sh
cd /var/www
/bin/tar zcvf /data/var_www_html_bak_`date +%F`.tar.gz ./html # (3) 测试脚本
[root@oldboy scripts]# /bin/sh html_bak.sh
./html/
./html/index.html [root@oldboy scripts]# ll /data/var_www_html_bak_2019-09-13.tar.gz
-rw-r--r-- 1 root root 160 Sep 13 13:43 /data/var_www_html_bak_2019-09-13.tar.gz # (4) 编辑crontab
[root@lb01 scripts]# crontab -e
##tar directory '/var/www/html' to /data at 00 hours every night by zoe at 2019.09.13##
00 00 * * * /bin/sh /server/scripts/html_bak.sh >/dev/null 2>&1 # (5) 调试crontab
通过调整日期的方式调试

6. 每周六、日上午 9:00 和下午14:00 来老男孩这里学习(执行程序/server/script/oldboy.sh 代替学习)。

解答:

# 1. 命令行测试
[root@oldboy scripts]# echo 'go to oldboy, learning linux.'
go to oldboy, learning linux. # 2. 编写脚本
[root@lb01 scripts]# vim /server/scripts/oldboy.sh
#/bin/sh
echo 'go to oldboytaining learning linux' >>~/message.txt # 3. 脚本测试
[root@oldboy scripts]# /bin/sh /server/scripts/oldboy.sh
[root@oldboy scripts]# cat ~/message.txt
go to oldboy, learning Linux. # 4. 编写crontab
[root@lb01 scripts]# crontab -e
##print message at every weeken by zoe at 20190913##
00 09,14 * * 0,6 /bin/sh /server/scripts/oldboy.sh >/dev/null 2&>1 # 5. 测试crontab
[root@oldboy scripts]# date -s '20190914 14:00'
Sat Sep 14 14:00:00 CST 2019
[root@oldboy scripts]# cat ~/message.txt
go to oldboy, learning Linux.

【目录或文件的作用】

7. 请描述下列路径的内容是做什么的?

解答:

  • /etc/sysctl.conf 优化系统内核参数的文件
  • /etc/rc.local 存放开机自启动程序命令的文件
  • /etc/hosts 局域网域名解析文件
  • /etc/fstab 开机自动挂载文件
  • /var/log/secure 系统安全日志文件,依赖于rsyslog服务

【正则表达式】

8. 请说出下列 grep 正则表达式的含义

解答:

  • ^ 以...开头
  • $ 以... 结尾
  • .(点号) 代表单个任意字符
  • \ 转义字符
  • * 重复0个或多个前面的一个字符
  • \{n,m\} 重复字符n到m次
  • [^t] 匹配不包含^后面的任意一个字符,即除了字符t,其他的全部匹配
  • ^[^t] 匹配以(非字符t)开头的字符

【vi常用命令】

9. 根据中文给出命令

(1) 退出并保存

(2) 退出并强制保存

(3) 强制退出,但不保存

(4) 光标移动到文件的最后一行

(5) 光标移动到文件的第一行

(6) 从光标所在位置将光标移动到当前行的开头

(7) 从光标所在位置将光标移动到当前行的结尾

(8) 取消上一次的动作

(9) 删除一行

(10) 向下搜索

(11) 向上搜索

解答:

(1) 退出并保存 :wq

(2) 退出并强制保存 :wq!

(3) 强制退出,但不保存 :q!

(4) 光标移动到文件的最后一行 shift+g| :$ | ]]

(5) 光标移动到文件的第一行 gg | 1G | :0 | [[

(6) 从光标所在位置将光标移动到当前行的开头 shift+6(^)| home | 0

(7) 从光标所在位置将光标移动到当前行的结尾 shift+4($)| end | shift+a(同时进入编辑模式)

(8) 取消上一次的动作 u

(9) 删除一行 dd

(10) 向下搜索 /char 向下搜索n,反向搜索N

(11) 向上搜索 ?char 向下搜索n,反向搜索N

扩展:

命令 功能说明

i 命令模式==>编辑模式,在光标位置前插入字符

a 命令模式==>编辑模式,在光标位置后插入字符

o 命令模式==>编辑模式,在当前行下方插入新的一行,并从行首

开始

Esc 编辑模式==>命令模式

:set nu 显示行号

:set nonu 不显示行号

yy 复制光标当前所在行

3yy 复制光标当前所在行以及下面2行,即复制3行的内容

p 粘贴

3dd 删除光标当前所在行,以及下面的2行,即删除3行的内容

【修改文件权限】

10. 授权oldboy目录及其子目录755的权限,请给出命令。

解答:

chmod -R 755 /oldboy

11. 把oldboy目录及其子目录的属主改为oldboy,组改为root,请给出命令。

解答:

chown -R oldboy:root /oldboy

【umask】

12. 描述下umask的作用,并举例。

解答:

umask:权限掩码。

作用: 配置文件的默认权限。

例如:

  1. root用户的umask值默认为0022

新建一个文件的默认权限就是644;
新建一个目录的默认权限就是755

原因:目录权限755和文件权限644是一个目录或普通文件安全的边界。

  1. 普通用户umask值默认为:0002(uid大于199并且uid和gid相同)

新建一个文件时,文件的权限肯定是664(666-002);
新建一个目录时,目录的权限肯定是775(777-002)

原因:普通用户自己创建的文件,属主和属组权限当然可以给大些。

 

总结:

  1. umask值是可以改的,但一般不改。

  2. 文件权限的计算方法有奇偶之分,当umask是偶数时,目录就用777-umask,文件就用666-umask;当umask是奇数时,计算方法如下:

假设umask值为:045(哪个数字位是奇数,就要给这个数字位加1处理)

6 6 6 ==>文件的起始权限值

0 4 5 - ==>umask的值


6 2 1 ==>由于umask的最后一位数字是5,所以,在其他用户位要再加1

0 0 1 +


6 2 2

  1. 目录权限的计算方法无奇偶之分,直接相减即可。
 

【用户和组】

13. 添加一个用户oldboy,并指定属于sa组,要求组ID为801,uid为808,并且不建立家目录及禁止其登录。

解答:

groupadd -g 801 sa

useradd -g sa -u 808 -M -s /sbin/nologin oldboy

[root@oldboy ~]# groupadd -g 801 sa# 先添加sa组,-g指定组ID

[root@oldboy ~]# useradd -g sa -u 808 -M -s /sbin/nologin oldboy
# -g指定属组,-u指定uid,-M代表不创建家目录,-s指定用户的登录shell
# -G指定所属的附加组,-m代表创建用户的家目录 [root@oldboy ~]# tail -1 /etc/passwd# 看是否在用户配置文件中有了新用户的记录
oldboy:x:808:801::/home/oldboy:/sbin/nologin
# 可以看到用户的家目录,用户的shell为/sbin/nologin
[root@oldboy ~]# id oldboy# 看用户的uid,所属组(组uid)
uid=808(oldboy) gid=801(sa) groups=801(sa)
[root@oldboy ~]# ls -ld /home/oldboy# 验证是否创建家目录
ls: cannot access /home/oldboy: No such file or directory

14. 如何查看用户的uid及属于的组信息。

解答:id命令
[root@oldboy ~]# id oldboy
uid=808(oldboy) gid=801(sa) groups=801(sa),802(teachers) [root@oldboy ~]# grep oldboy /etc/passwd
oldboy:x:808:801::/home/oldboy:/sbin/nologin
# uid为808;所属主组为sa,gid为801;所属附加组为teachers,gid为802。
 

【Linux题目】第六关的更多相关文章

  1. 【linux题目】第一关

    详细的解答:https://github.com/Zoe233/Linux/blob/master/[题目]5.Linux了解程度测试题解析.ipynb 1. 创建一个目录/data 解答: mkdi ...

  2. 【Linux题目】第九关

    前言:项目整合 企业项目实战考试: 1. 全网备份解决方案实战 2. NFS集群后段共享存储搭建优化 3. 解决NFS单点实现实时数据同步. 环境: 服务器角色 外网ip 内网ip 主机名 web 1 ...

  3. 【linux题目】第二关

    1.创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容”inet addr:10.0.0.8 Bcast:10.0.0.255 Ma ...

  4. 20145233 2016-2017 1 linux题目总结

    20145233 2016-2017 1 linux题目总结 第一周考试知识汇总 判断:实验楼环境中所有的默认系统用户名和密码均为 shiyanlou.(x ). 填空:Linux Bash中,Ctr ...

  5. Python Challenge 第六关

    第六关只有一张图和一个 PayPal 的链接,右键源代码注释中写着 PayPal 是作者要赞助的,跟题目没关系,其他的提示只有注释中写的个 zip.试过下图片,改图片扩展名等等都失败了,最后乱试改了下 ...

  6. [转帖]Linux分页机制之概述--Linux内存管理(六)

    Linux分页机制之概述--Linux内存管理(六) 2016年09月01日 19:46:08 JeanCheng 阅读数:5491 标签: linuxkernel内存管理分页架构更多 个人分类: ┈ ...

  7. SQL注入之Sqli-labs系列第二十六关(过滤空格、注释符、逻辑运算符注入)和第二十六A

    开始挑战第二十六关(Trick with comments and space) 0x1看看源代码 (1)过滤了#  or and  /**/  /  \ ,通过判断也过滤了空格 (2)这样一来只能看 ...

  8. SQL注入之Sqli-labs系列第十五关和第十六关(基于POST的时间盲注)

    开始挑战第十五关(Blind- Boolian Based- String)和 第十六关(Blind- Time Based- Double quotes- String) 访问地址,输入报错语句 ' ...

  9. SQL注入之Sqli-labs系列第五关和第六关(基于GET型的报错注入)

    废话不在多说  let's go! 开始挑战第五关(Double Query- Single Quotes- String) 和第六关(Double Query- Double Quotes- Str ...

  10. Linux分析第六周——进程的描述和进程的创建

    Linux分析第六周--进程的描述和进程的创建 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/US ...

随机推荐

  1. jsbrage——和app交互

      <html> <head> <meta content="text/html; charset=utf-8" http-equiv="c ...

  2. composer换源,composer切换国内源

    首先要分清楚是局部换源还是全局换源 1.局部换源(仅对当前项目有效) 在当前项目下的composer.json中添加 { "repositories": [ { "typ ...

  3. GitHub 热点速览 Vol.15:Background-Matting 让你秒变专业抠图师

    作者:HelloGitHub-小鱼干 摘要:如果要选一个词来概述上周的热点,春风拂过,应该是一个不错的词.新项目像春天冒出的枝芽,朝气蓬勃,虽然获得的 star 不如之前三维 Vim 抢眼,但胜在多姿 ...

  4. python 终端带颜色的打印文本

    import sys from termcolor import colored, cprint text = colored('Hello, World!', 'red', attrs=['reve ...

  5. 汇编刷题:在M单元和N单元分别存有一个8位无符号数36H和95H,要求比较并输出 M大于N 或者 M小于N

    DATA SEGMENT     M DB 36H     N DB 95H     RESAULT1 DB 'M>N$'     RESAULT2 DB 'M<N$' DATA ENDS ...

  6. 深入理解智能指针之shared_ptr(一)

    本文基于C++标准库源码分析shared_ptr,旨在搞清楚shared_ptr是什么,线程安全性等,目标能够安全的使用智能指针. (一)shared_ptr是一个类. 首先可以确定的是shared_ ...

  7. springIoc中的单列对象的分析

    最近有个同事去面试,其中有一个问题是关于spring单例的.本篇博文就发表一下小编我自己的理解~~. 使用过spring的程序猿应该都知道,我们的bean(controller.service和Dao ...

  8. Mac Jenkins+fastlane 简单几步实现iOS自动化打包发布 + jenkins节点设置

    最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenk ...

  9. elementUI踩坑

    1.滚动条消失,body中莫名出现行内样式overflow: hidden; 在做某个图片上传,显示功能出现的问题.控制台并没有报错,代码也并无相关操作 必须重新刷新页面之后滚动条才会显示出来 几天后 ...

  10. java的套接字实现远程连接

    package jnet;//客户端程序,使用套接字连接服务器import java.net.*;import java.io.*;import javax.swing.*; public class ...