[命令] Linux 命令 script (记录用户的所有操作和操作的输出结果)

正文:

内容一:script 命令的格式

1.1 script 命令的格式

# script <option> <parameter>

1.2 script 命令的选项

1) -a 或者 –append #以追加的方式将记录写入文件
2) -c <command> 或者 –command <command> #运行 script 命令后直接执行 命令,再直接推出 script
3) -e 或者 –return #在 script 命令运行时,显示执行命令的状态返回麻
4) -f 或者 –flush #在 script 命令运行时,只要发生了变化就立刻写入文件
5) –force #写入记录的文件可以是链接
6) -o <size> 或者 –output-limit <size> #限制写入文件的大小, 的单位可以为:KiB (=1024)、KB (=1000)、MiB (10241024)、MB (=10001000)、GiB (=10001000)、TiB (=10001000) 等
7) -q 或者 –quiet #以安静模式运行 script 命令
8) -t[<file>] 或者 –timing[=<file>] #将时间信息输出到标准错误(stderr)或者文件里
9) -V 或者 –version #显示 script 命令的版本
10) -h 或者 –help #显示帮助

内容二:script 命令的使用案例

2.1 进入 script 模式

# script -a -f command.txt

(补充:这里以追加的形式把用户的所有操作和操作的输出结果写入到 command.txt 文件里)

2.2 推出 script 模式

# exit

(补充:此时在进入 script 命令模式后用户的所有操作和操作的输出结果都已写入到 command.txt 文件里)

补充:

[内容] Linux 查看 auditd 日志的案例

案例一:查看文件创建记录

# /usr/sbin/ausearch --start $(date +\%m/\%d/\%Y -d "-1 month") -i --input-logs | egrep "/test/test.txt.*nametype=CREATE" | awk '{print $2,$3,$6}'

(补充:这里以查看 /test/test.txt 文件有没有被创建为例)

案例二:查看文件删除记录

# /usr/sbin/ausearch --start $(date +\%m/\%d/\%Y -d "-1 month") -i --input-logs | egrep "/test/test.txt.*nametype=DELETE" | awk '{print $2,$3,$6}'

(补充:这里以查看 /test/test.txt 文件有没有被删除为例)

案例三:查看文件有没有存在过

# /usr/sbin/ausearch --start $(date +\%m/\%d/\%Y -d "-1 month") -i --input-logs | egrep "/test/test.txt.*nametype=" | awk '{print $2,$3,$6}' | uniq

(补充:这里以查看 /test/test.txt 文件有没有存在过为例)

[步骤] Linux 救援模式的进入

步骤一:挂载官方镜像

(步骤略)

步骤二:登录拯救模式

2.1 选择通过光盘启动

(步骤略)

2.2 进入拯救模式

(步骤略)

2.3 登录拯救模式

rescue login:root

步骤三:在救援模式确定系统的根 “/” 目录分区

(步骤略)


补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定

步骤四:在救援模式将系统的分区挂载到救援模式的 /mnt 目录

4.1 在救援模式将系统的根 “/” 分区挂载到救援模式的 /mnt 目录

tty1:rescue:~ # mount <root spartition> /mnt


补充:
1) 如果是物理分区,系统的根 “/” 分区就在救援模式的 /dev/ 目录里,例如救援模式的 /dev/sda1
2) 如果是逻辑分区,Rocky Linux & RHEL 的系统根 “/” 分区就是救援模式里的 /dev// 例如救援模式里的 /dev/vg/lv,openSUSE & SLE 的系统 “/” 分区就是救援模式里的 /dev/mapper/- 例如救援模式里的 /dev/mapper/vg-lv

4.2 在救援模式将救援模式的 /dev 目录关联到救援模式的 /mnt/dev 目录

tty1:rescue:~ # mount --rbind /dev /mnt/dev


补充:
1) 此时所有对救援模式的 /mnt/dev 目录的访问都会变成对救援模式的 /dev 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:

tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done

4.3 在救援模式将救援模式的 /proc 目录关联到救援模式的 /mnt/proc 目录

tty1:rescue:~ # mount --rbind /proc /mnt/proc


补充:
1) 此时所有对救援模式的 /mnt/proc 目录的访问都会变成对救援模式的 /proc 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:

tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done

4.4 在救援模式将救援模式的 /sys 目录关联到救援模式的 /mnt/sys 目录

tty1:rescue:~ # mount --rbind /sys /mnt/sys


补充:
1) 此时所有对救援模式的 /mnt/sys 目录的访问都会变成对救援模式的 /sys 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:

tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done

4.5 在救援模式将救援模式的 /run 目录关联到救援模式的 /mnt/run 目录 (选做)

tty1:rescue:~ # mount --rbind /run /mnt/run

(补充:此时所有对救援模式的 /mnt/run 目录的访问都会变成对救援模式的 /run 目录的访问)

步骤五:将当前的根 “/” 目录从救援模式的根 “/” 目录切换到系统的根 “/” 目录

5.1 将当前的根 “/” 目录从救援模式的根 “/” 目录切换到系统的根 “/” 目录

tty1:rescue:~ # chroot /mnt

(补充:这里以 /mnt 作为系统根 “/” 目录为例)

5.2 在系统模式挂载所有需要开机自动挂载的目录

bash-4.3# mount -a

5.3 在系统模式确认当前根 “/” 目录下的目录

bash-4.3# ls
bin boot dev home lib lib64 mnt opt proc root run sbin selinux srv sys tmp usr var

(补充:这里显示的是常见的 Linux 根 “/” 目录 下的目录)

步骤六:重启系统

6.1 从当前系统的根 “/” 目录切换回救援模式的根 “/” 目录

bash-4.3# exit

6.2 重启系统

tty1:rescue:~ # reboot