Linux 重定向 管理组和用户 tar备份和恢复 crone计划任务(DAY4牛)

南笙酒味 提交于 2019-12-21 12:23:51

重定向操作:将前面命令的输出,作为文本文件内容写入到文件中

>:覆盖重定向 >>:追加重定向

[root@A ~]# cat --help > /opt/cat.txt
[root@A ~]# cat /opt/cat.txt

[root@A ~]# hostname
[root@A ~]# hostname > /opt/cat.txt
[root@A ~]# cat /opt/cat.txt

[root@A ~]# hostname >> /opt/cat.txt
[root@A ~]# cat /opt/cat.txt

[root@A ~]# ifconfig >> /opt/cat.txt
[root@A ~]# cat /opt/cat.txt

[root@A ~]# echo hello
[root@A ~]# echo 123456

[root@A ~]# echo 123456 > /opt/cat.txt
[root@A ~]# cat /opt/cat.txt

[root@A ~]# echo haha >> /opt/cat.txt
[root@A ~]# cat /opt/cat.txt

[root@A ~]# echo linux >> /opt/cat.txt
[root@A ~]# cat /opt/cat.txt

#########################################################
管道操作 | :将前面命令的输出传递给后面命令,作为后面命令的参数

显示文件/etc/passwd文件的8~12行内容
[root@A ~]# head -12 /etc/passwd | tail -5

[root@A ~]# head -12 /etc/passwd | tail -5 | cat -n

[root@A ~]# cat -n /etc/passwd | head -12 | tail -5

[root@A ~]# ifconfig | head -2

[root@A ~]# ifconfig | less

#########################################################
查看系统时间:date

[root@A ~]# date
[root@A ~]# date -s ‘年-月-日 时:分:秒’
[root@A ~]# date -s ‘2000-10-1 12:10:01’
2000年 10月 01日 星期日 12:10:01 CST
[root@A ~]# date
2000年 10月 01日 星期日 12:10:02 CST
[root@A ~]# date -s ‘2019-12-03 9:30’
2019年 12月 03日 星期二 09:30:00 CST
[root@A ~]# date
2019年 12月 03日 星期二 09:30:02 CST
[root@A ~]#

########################################################
管理用户和组

用户:1.登陆操作系统 2.不同用户具备不同权限
组:方便管理用户

唯一标识: UID GID
普通用户的UID:1000以上
管理员UID为0

组: 基本组(私有组) 附加组(从属组)
一个用户至少属于一个组

[root@A ~]# useradd tom
[root@A ~]# 组:tom
[root@A ~]# 组:nb 组:xixi

添加用户
用户基本信息存放在 /etc/passwd 文件
[root@A ~]# head -1 /etc/passwd
root❌0:0:root:/root:/bin/bash
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录(宿主目录):解释器

• 使用 useradd 命令
– useradd [选项]… 用户名

• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录解释器、-G 附加组

[root@A ~]# useradd nsd02
[root@A ~]# id nsd02 #查看用户基本信息

[root@A ~]# useradd nsd03
[root@A ~]# id nsd03

[root@A ~]# useradd -u 1500 nsd04
[root@A ~]# id nsd04

[root@A ~]# useradd -d /opt/nsd06 nsd06
[root@A ~]# ls /opt/

/sbin/nologin:禁止用户登陆操作系统

[root@A ~]# useradd -s /sbin/nologin nsd07
[root@A ~]# grep nsd07 /etc/passwd
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录(宿主目录):解释器

[root@A ~]# useradd -s /sbin/nologin nsd08
[root@A ~]# grep nsd08 /etc/passwd

[root@A ~]# groupadd tedu #创建组
[root@A ~]# useradd -G tedu nsd09 #指定用户的附加组
[root@A ~]# id nsd09

#######################################################
usermod修改已存在的用户属性
• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录解释器、-G 附加组(重置附加组)

[root@A ~]# useradd nsd10
[root@A ~]# id nsd10

[root@A ~]# grep nsd10 /etc/passwd
[root@A ~]# usermod -u 1600 -s /sbin/nologin nsd10
[root@A ~]# grep nsd10 /etc/passwd

[root@A ~]# grep nsd10 /etc/passwd
[root@A ~]# usermod -d /opt/haxi nsd10
[root@A ~]# grep nsd10 /etc/passwd
[root@A ~]# ls /opt/

[root@A ~]# id nsd10

[root@A ~]# usermod -G tedu nsd10
[root@A ~]# id nsd10

[root@A ~]# groupadd tarena #创建组tarena
[root@A ~]# usermod -G tarena nsd10
[root@A ~]# id nsd10
##########################################################

设置登录密码

• 使用 passwd 命令
– passwd [用户名]

[root@A ~]# passwd nsd02
更改用户 nsd02 的密码 。
新的 密码: #输入新的密码
无效的密码: 密码少于 8 个字符
重新输入新的 密码: #重新输入新的密码
passwd:所有的身份验证令牌已经成功更新。

[root@A ~]# su - nsd02 #在命令行,临时切换用户身份
[nsd02@A ~]$ passwd
更改用户 nsd02 的密码 。
为 nsd02 更改 STRESS 密码。
(当前)UNIX 密码: #输入旧密码
新的 密码: #输入新的密码
重新输入新的 密码: #重新输入新的密码
passwd:所有的身份验证令牌已经成功更新。
[nsd02@A ~]$ exit
登出
[root@A ~]#
######################################################
非交互式设置密码

[root@A ~]# echo ‘密码’ | passwd --stdin 用户名

[root@A ~]# echo 123 | passwd --stdin nsd02
[root@A ~]# echo redhat | passwd --stdin nsd02
[root@A ~]# echo 123456 | passwd --stdin nsd02

######################################################
用户密码信息存放在 /etc/shadow 文件
[root@A ~]# grep nsd02 /etc/shadow
nsd02:$69Ce00zrL9Ce00zrLWre3tD8GflkNQiGbdfrAU/rSBUkYZ8DtXLbgxNfLsj68H.ukSpTMWSGb7ZIA02R9T97wpJt/TqLZK.VNZaLfr.:18233:0:99999:7:::

用户名:密码加密字符串:上一次修改密码的时间
上一次修改密码的时间:自1970-1-1 ~ 2019-12-3 经历的天数

#######################################################
删除用户
• 使用 userdel 命令
– userdel 用户名
[-r]:连同家目录一并删除

[root@A ~]# userdel -r nsd02
[root@A ~]# id nsd02
id: nsd02: no such user
[root@A ~]# ls /home/

#######################################################
管理组账号

添加组
组基本信息存放在 /etc/group 文件
[root@A ~]# grep stugrp /etc/group
stugrp❌1509:
组名:组的密码占位符:组GID:组成员列表

• 使用 groupadd 命令
– groupadd [-g 组ID] 组名

[root@A ~]# groupadd stugrp #创建组
[root@A ~]# grep stugrp /etc/group #查看组信息
stugrp❌1509:
[root@A ~]# useradd kaka
[root@A ~]# useradd jack
[root@A ~]# useradd natasha

管理组成员
组成员信息存放在 /etc/gshadow 文件
• 使用 gpasswd 命令
– gpasswd -a 用户名 组名
– gpasswd -d 用户名 组名

[root@A ~]# gpasswd -a kaka stugrp #将用户kaka添加到stugrp组
[root@A ~]# grep stugrp /etc/group

[root@A ~]# gpasswd -a jack stugrp
[root@A ~]# grep stugrp /etc/group

[root@A ~]# id kaka
[root@A ~]# id jack

[root@A ~]# gpasswd -a kaka tedu
[root@A ~]# id kaka

[root@A ~]# gpasswd -d kaka stugrp #将用户kaka从stugrp组删除
[root@A ~]# id kaka
[root@A ~]# grep stugrp /etc/group

[root@A ~]# gpasswd -a natasha stugrp
[root@A ~]# grep stugrp /etc/group

删除组,不能删除用户的基本组
• 使用 groupdel 命令
– groupdel 组名

[root@A ~]# groupdel stugrp
[root@A ~]# grep stugrp /etc/group

##########################################################
案例1:配置用户和组账号
• 新建用户 alex,其用户ID为3456,密码是flectrag
[root@A ~]# useradd -u 3456 alex
[root@A ~]# echo flectrag | passwd --stdin alex
• 一个名为 adminuser 的组
[root@A ~]# groupadd adminuser
• 一个名为 natasha 的用户,其属于 adminuser 组,这个组是该用户的从属组
[root@A ~]# gpasswd -a natasha adminuser
[root@A ~]# grep adminuser /etc/group
• 一个名为 harry 的用户,其属于 adminuser 组,这个组是该用户的从属组
[root@A ~]# useradd -G adminuser harry
• 一个名为 sarah的用户,禁止用户登陆操作系统,并且不是 adminuser 组的成员
[root@A ~]# useradd -s /sbin/nologin sarah
[root@A ~]# grep sarah /etc/passwd
• natasha 、harry、sarah 的密码都要设置为 flectrag
[root@A ~]# echo flectrag | passwd --stdin natasha
[root@A ~]# echo flectrag | passwd --stdin harry
[root@A ~]# echo flectrag | passwd --stdin sarah
##########################################################
tar归档和压缩

• 归档的含义
– 将许多零散的文件整理为一个文件
– 文件总的大小基本不变

• 压缩的含义
– 按某种算法减小文件所占用空间的大小
– 恢复时按对应的逆向算法解压

常见的压缩格式
.gz —> gzip
.bz2 —> bzip2
.xz —> xz

• tar 集成备份工具
– -c:创建归档
– -x:释放归档
– -f:指定归档文件名称,必须在所有选项的最后
– -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
– -t:显示归档中的文件清单
– -C:指定释放路径

制作tar包(打包)
格式: tar 选项 /路径/压缩包的名字 被压缩的源数据…

]# rm -rf /opt/*
]# tar -zcf /opt/abc.tar.gz /etc/passwd /etc/shadow /home/
tar: 从成员名中删除开头的“/”
]# ls /opt/

]# tar -jcf /opt/file.tar.bz2 /etc/passwd /etc/shadow /home/
tar: 从成员名中删除开头的“/”
]# ls /opt/

]# tar -Jcf /opt/nsd.tar.xz /etc/passwd /etc/shadow /home/
tar: 从成员名中删除开头的“/”
]# ls /opt/

释放tar包(解包)
格式:tar 选项 /路径/tar包名字 -C(大写) /释放的路径
[root@A ~]# mkdir /nsd01 /nsd02 /nsd03
[root@A ~]# tar -xf /opt/abc.tar.gz -C /nsd01
[root@A ~]# ls /nsd01
[root@A ~]# ls /nsd01/etc/
[root@A ~]# ls /nsd01/home/

[root@A ~]# tar -xf /opt/file.tar.bz2 -C /nsd02
[root@A ~]# ls /nsd02

[root@A ~]# tar -xf /opt/nsd.tar.xz -C /nsd03
[root@A ~]# ls /nsd03
#######################################################
案例2:创建一个备份包
使用 tar 工具完成以下备份任务:
– 创建一个名为 /root/backup.tar.bz2 的归档文件
– 其中包含 /usr/local 目录中的内容
– tar 归档必须使用 bzip2 进行压缩

[root@A ~]# tar -jcf /root/backup.tar.bz2 /usr/local/
tar: 从成员名中删除开头的“/”
[root@A ~]# ls /root/

[root@A ~]# tar -tf /root/backup.tar.bz2 #查看包里面内容

########################################################
cron任务概述
• 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务

• 软件包:cronie、crontabs
• 系统服务:crond
• 日志文件:/var/log/crond

管理计划任务策略
• 使用 crontab 命令
– 编辑:crontab -e [-u 用户名] #调用的文本编辑器
– 查看:crontab -l [-u 用户名]
– 清除:crontab -r [-u 用户名]

如何编写crontab任务记录
– 分 时 日 月 周 任务命令行(绝对路径)
1 8 * * * 每天上午8:01

30 23 * * * 每天晚上23:30

30 23 * * 5 每周五晚上23:30

30 23 * * 1-5 每周一至周五晚上23:30

30 23 * * 1,3,7 周一 周三 周日 晚上23:30

30 23 1 * 1 周一 晚上23:30 或 每月的1号晚上23:30

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

*/5   *  *  *  *         每隔5分钟执行一次

每分钟记录当前的系统时间写入到/opt/time.txt
[root@A ~]# date
2019年 12月 03日 星期二 16:51:03 CST
[root@A ~]# date >> /opt/time.txt
[root@A ~]# cat /opt/time.txt
[root@A ~]# crontab -e #编辑计划任务
*/1 * * * * date >> /opt/time.txt

[root@A ~]# crontab -l #查看当前用户的计划任务

[root@A ~]# cat /opt/time.txt

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!