Linux+Python运维培训班第4期--马哥——第3次作业(20170212)

1、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();

[[email protected] ~]# grep --color=auto‘\<[[:alpha:]]\+\>()‘ /etc/rc.d/init.d/functions
checkpid()
 {
daemon()
 {
killproc()
 {
pidfileofproc()
 {
pidofproc()
 {
status()
 {
success()
 {
failure()
 {
passed()
 {
warning()
 {
action()
 {
strstr()
 {
confirm()
 {

2、使用echo命令输出一个绝对路径,使用grep取出其基名;

[[email protected] ~]# echo ‘/etc/rc.d/init.d/functions‘ | grep--color=auto -E -o ‘[^/]+$‘
functions

扩展:取出其路径名

[[email protected] ~]# echo ‘/etc/rc.d/init.d/functions‘ | grep--color=auto -o ‘^\/.*\/‘
/etc/rc.d/init.d/

3、找出ifconfig命令结果中的1-255之间数字;

[[email protected] ~]# ifconfig | grep --color=auto -E -o‘\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>‘
29
192
168
20
4
192
168
20
255
255
255
255
64
1
8
6
127
1
255
1
128
1

4、查找当前系统上没有属主或属组的文件;

[[email protected] ~]# find / \( -nouser -o -nogroup \) -exec ls-lh {} \;
总用量 0
总用量 0
-rw-r--r--. 1 1005 distro 18 10月 16 2014/home/mandriva/.bash_logout
-rw-r--r--. 1 1005 distro 124 10月 16 2014/home/mandriva/.bashrc
-rw-r--r--. 1 1005 distro 176 10月 16 2014/home/mandriva/.bash_profile
总用量 4.0K
drwxr-xr-x. 2 1005 distro 1.0K 8月  18 2010 extensions
drwxr-xr-x. 2 1005 distro 1.0K 8月  18 2010 plugins
总用量 0
总用量 0
find: “/proc/3802/task/3802/fd/5”: 没有那个文件或目录
find: “/proc/3802/task/3802/fd/5”: 没有那个文件或目录
find: “/proc/3802/task/3802/fdinfo/5”: 没有那个文件或目录
find: “/proc/3802/task/3802/fdinfo/5”: 没有那个文件或目录
find: “/proc/3802/fd/5”: 没有那个文件或目录
find: “/proc/3802/fd/5”: 没有那个文件或目录
find: “/proc/3802/fdinfo/5”: 没有那个文件或目录
find: “/proc/3802/fdinfo/5”: 没有那个文件或目录
-rw-r-----. 1 27 27 0 8月   3 2016 /var/log/mysqld.log
总用量 0
-rw-rw----. 1 1005 mail 0 12月 2501:22 /var/spool/mail/mandriva
-rw-rw-r--. 1 root 3004 0 2月   7 23:12 /tmp/test1
-rw-rw-r--. 1 3004 root 0 2月   7 23:12 /tmp/test2
-rw-rw-r--. 1 3004 3004 0 2月   7 23:12 /tmp/test

进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;

[[email protected] ~]# find / \( -nouser -o -nogroup \) -a -atime-3 -exec ls -lh {} \;
总用量 0
总用量 0
总用量 4.0K
drwxr-xr-x. 2 1005 distro 1.0K 8月  18 2010 extensions
drwxr-xr-x. 2 1005 distro 1.0K 8月  18 2010 plugins
总用量 0
总用量 0
find: “/proc/3841/task/3841/fd/5”: 没有那个文件或目录
find: “/proc/3841/task/3841/fdinfo/5”: 没有那个文件或目录
find: “/proc/3841/fd/5”: 没有那个文件或目录
find: “/proc/3841/fdinfo/5”: 没有那个文件或目录
总用量 0
-rw-rw-r--. 1 root 3004 0 2月   7 23:12 /tmp/test1
-rw-rw-r--. 1 3004 root 0 2月   7 23:12 /tmp/test2
-rw-rw-r--. 1 3004 3004 0 2月   7 23:12 /tmp/test

5、查找/etc目录下大于1M,且类型为普通文件的所有文件;

[[email protected] ~]# find /etc -size +1M -type f -exec ls -lh{} \;
-rw-r--r--. 1 root root 2.1M 8月   3 2016/etc/gconf/gconf.xml.defaults/%gconf-tree.xml
-rw-r--r--. 1 root root 7.8M 8月   3 2016/etc/selinux/targeted/modules/active/policy.kern
-rw-r--r--. 1 root root 7.8M 8月   3 2016/etc/selinux/targeted/policy/policy.24

6、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;

[[email protected] ~]# touch /etc/init.d/test ; chmod u+x,g+x,o+xw/etc/init.d/test ; find /etc/init.d/ -perm -113 -exec ls -lh {} \; ; rm -rf/etc/init.d/test
-rwxr-xrwx. 1 root root 0 2月   8 05:58 /etc/init.d/test

7、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;

[[email protected] ~]# useradd jady ; useradd hadoop ; touch /etc/test; chown jady /etc/test ; echo ‘test‘ > /etc/test ; find /etc/ \( -type f -a-mtime -7 -a -not \( -user root -o -user hadoop \) \) -exec ls -lh {} \; ; rm-rf /etc/test ; userdel -r jady ; userdel -r hadoop
-rw-r--r--. 1 jady root 5 2月   8 06:27 /etc/test

8、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

[[email protected] ~]# cp /etc/rc.d/rc.sysinit /tmp/ ; ll -h/tmp/rc.sysinit
-rwxr-xr-x. 1 root root 20K 2月   8 22:44 /tmp/rc.sysinit
[[email protected] ~]# vim /tmp/rc.sysinit
   :%[email protected]^[[:space:]]@#&@g

9、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符

[[email protected] ~]# vim /tmp/rc.sysinit
   :%[email protected]^#[[:space:]]\[email protected]@g

10、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;

[[email protected] ~]# vim /etc/yum.repos.d/CentOS-Media.repo
   :%[email protected][email protected][email protected]
   :%[email protected][email protected][email protected]

11、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20161202

[[email protected] ~]# crontab -l
30 0 * * 2,4,6 [ -d /backup/messages ] ||/bin/mkdir -pv /backup/messages > /dev/null && /bin/cp /var/log/messages/backup/messages/messages\-$(/bin/date +\%Y\%m\%d)
[[email protected] ~]# ll -h /backup/messages/
总用量 260K
-rw-------. 1 root root 259K 2月   9 00:30 messages-20170209

12、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

[[email protected] ~]# crontab -l
50 */2 * * * [ -f /stats/memory ] ||/bin/mkdir -pv /stats/memory > /dev/null && /bin/grep --color=auto-i "^s" /proc/meminfo >> /stats/memory.txt
[[email protected] ~]# ll /stats/memory.txt
-rw-r--r--. 1 root root 196 2月   9 00:50 /stats/memory.txt

13、写一个脚本创建10用户user10-user19;密码同用户名;

[[email protected] ~]# vim useradd.sh
  1 #!/bin/bash
  2 # Program:
  3 #       创建10个账号user10至user19,其密码同账号名;
  4 # History:
  5 #       2017-02-08      Jady    1.0
  6 
  7 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  8 export PATH
  9 
 10 # 1、非管理员账号创建账号时提醒退出;
 11 if [ ! $UID -eq 0 ] ; then
 12         echo "对不起,只有管理员账号方能创建用户!"
 13         exit 1
 14 fi
 15 
 16 # 2、循环创建账号user10至user19;
 17 for index in `seq 10 1 19` ; do
 18         if id user$index &> /dev/null ; then
 19                 read -p "user$index 账号在系统中已存在,是否删除重新创建(Y/N)?" username
 20                 if [ $username = "Y" ] ; then
 21                         userdel -r user$index
 22                         if [ $? -eq 0 ] ; then
 23                                 useradd user$index
 24                                 if [ $? -eq 0 ] ; then
 25                                         echo "user$index" | passwd --stdin user$index &> /dev/null
 26                                         echo "原 user$index 账号连同家目录已删除,同时创建新 user$index 账号;"
 27                                 fi
 28                         fi
 29                 else
 30                         echo "保留原 user$index 账号信息;"
 31                 fi
 32         else
 33                 useradd user$index
 34                 if [ $? -eq 0 ] ; then
 35                         echo "user$index" | passwd --stdin user$index &> /dev/null
 36                         echo "user$index 账号创建成功!"
 37                 fi
 38         fi
 39 done
 [[email protected] ~]# bash -n useradd.sh
 [[email protected] ~]# useradd user10 ; useradd user18 ; bash useradd.sh
user10 账号在系统中已存在,是否删除重新创建(Y/N)?N
保留原 user10 账号信息;
user11 账号创建成功!
user12 账号创建成功!
user13 账号创建成功!
user14 账号创建成功!
user15 账号创建成功!
user16 账号创建成功!
user17 账号创建成功!
user18 账号在系统中已存在,是否删除重新创建(Y/N)?Y
原 user18 账号连同家目录已删除,同时创建新 user18 账号;
user19 账号创建成功!
时间: 2024-10-09 23:18:05

Linux+Python运维培训班第4期--马哥——第3次作业(20170212)的相关文章

Linux+Python运维培训班第4期--马哥——第1次作业(20161211)

1.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. slackware:非常稳定.安全,高度坚持UNIX的规范 ├──suse ├──sles ├──opensuse debian:用户由互联网自发,仍处于非商业组织负责运维: ├──ubuntu ├──mint redhat: ├──rhel(redhat enterprise linux):遵循GPL协定且公开源码,但补丁包收费,每18个月发行一个新版本: ├──centos:针对rhel进行的再次封装: ├──fedora

Linux+Python运维培训班第4期--马哥——第2次作业(20161225)

1.列出当前系统上所有已经登录的用户的用户名(注:同一个用户登录多次则只显示一次). [[email protected]~]# who ; echo -e '\n' ; who | grep -o '^\<[[:alpha:]]\+\>' | sort -u root     pts/0        2016-12-23 22:00 (192.168.20.1) root     pts/1        2016-12-23 22:00 (192.168.20.1) root     p

【转】Linux从入门到精通——运维工程师成长路线图——CTO马哥Linux视频教学

加油! http://edu.51cto.com/roadmap/view/id-2.html#6853467-sqq-1-36881-57ccc7d95ea58df839decd91bd220170 [转]Linux从入门到精通--运维工程师成长路线图--CTO马哥Linux视频教学

老男孩教育linux脱产运维39期——决心书

我叫何承鑫,我是老男孩教育linux脱产运维39期的一名学员,我热爱IT技术,希望这份技术能在5个月后能带给我一份不错薪资待遇,我的目标是:在广东地域,9K起步:北京地域,13K起步.为了实现这个目标,未来的这5个月我要努力做到以下几点: 1.坚持每天学习时间10小时~12小时. 2.做好预习与复习. 3.听话出活. 4.每天都要把所学的东西制作成文档. 有志者,事竟成        破釜沉舟,百二秦关终归楚 苦心人,天不负        卧薪尝胆,三千越甲可吞吴

linux运维及Python运维免费公开课

适用人群:想从事linux运维及python运维开发的人员 企业网管.技术支持.linux运维人员.大中专学生 听课时间:2014年11月30日(周日)下午1:30 听课地点:北京市昌平区沙河青年创业大厦B座1519室(地铁昌平线沙河站B1口200米处) 听课内容: LINUX运维:(1.5小时) 1.软件开源的大发展趋势及如何把握这个趋势? 2.linux运维职位到底都做什么? 3.linux运维前景到底咋样? 4.到底是选择运维还是选择开发发展? 5.运维人员如何超越年薪30万,50万? 6

畅聊Linux系统运维的未来

畅聊Linux系统运维的未来我想来跟大家聊聊Linux运维这一行业,从几个方面说下行业的现状.如何学好Linux和如何成为专业运维人员以及云服务对运Linux运维的影响. 一.linux行业状况我们都知道从1991年Linux开始火爆全球,蔓延至中国,随着智能中国.网络繁荣发展,众多应用基本都跑在Linux服务器上面,但对于大多数人来说还是不太了解.1.入坑门槛太高Linux属于类UNIX操作系统,从开发之初就不是针对普通大众的,而是专门从事计算机行业的员.Linux主要以命令行的方式操作,而这

linux 自动化运维之Cobbler

一.Cobbler 简介 1.Cobbler 概述 Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装.同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展.它不紧可以安装物理机,同时也支持kvm.xen虚拟化.Guest OS的安装.更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理. 2.新旧对比 以前自动化安装系统得先设置一个网络环境,可是设置网络环境涉及到

Linux系统运维与架构设计

一 本章概览 介绍Linux系统运维与架构设计的方方面面 二 Linux基础入门 认识计算机核心硬件和服务器 Linux发展历史.系统组成.应用领域以及发行版 搭建运维环境:VMWareWorkStation.SecureCRT的使用 Linux系统的基本使用 Shell入门以及命令概述 三 Linux系统管理 文件目录管理 用户管理 权限管理 VIM编辑器的使用 文档压缩打包 程序包管理 网络管理 文件系统管理 内存管理 系统管理(监控.环境变量) 安全管理(selinux,iptables)

备起来!Linux安全运维常见命令小贴士

备起来!Linux安全运维常见命令小贴士 常用命令 1. 查找关键词并统计行数 cat 2015_7_25_test_access.log | grep "sqlmap" | wc -l 2. 删除含有匹配字符的行 sed -i '/Indy Library/d' 2015_7_25_test_access.log 3. 查找所有日志中的关键词 find ./ -name "*.log" |xargs grep "sqlmap" |wc -l 4