script命令

xiaohai 2021-05-11 11:43:57 1689人围观 标签: Linux 
简介有时候在操作Linux时会发现整个过程操作了很多命令,但是自己有记不住,或者与其他同事协同工作时不知道对方到底处理到了那里,这里就介绍一个命令:script。

Linux终端记录器

有时候在操作Linux时会发现整个过程操作了很多命令,但是自己有记不住,或者与其他同事协同工作时不知道对方到底处理到了那里,这里就介绍一个命令:script。

script 是一个神奇命令,script 能够将终端的会话过程录制下来,然后使用 scriptreplay 就可以将其录制的结果播放给他人观看。script 的好处就在于你在终端中的所有操作、敲过的命令和打印出的结果它都可以原原本本地进行录制。可以应用于教学、演示、审计。

使用场景

  • 调试会产生大量 log 的应用程序,并且需要保存到本地进行进一步分析;

  • 与同事协同工作,自己将工作完成了一半,可以将操作过程记录下来,发给同事,同事可以根据记录接着工作;

  • 让人远程协助你,担心对方使坏,同时也可以留下案底,最好将他的操作记录下来

参数

  • -t:指明输出录制的时间数据
  • -f:如果需要在输出到日志文件的同时,也可以查看日志文件的内容,可以使用 -f 参数。PS:可以用于教学,两个命令行接-f可以实时演示
  • -a:输出录制的文件,在现有内容上追加新的内容
  • -q:可以使script命令以静默模式运行

script使用

基本使用

[root@localhost ~]# script #开启记录
Script started, file is typescript

#一系列操作
[root@localhost ~]# cd /
[root@localhost /]# ls
appendonly.aof  apps  bin  boot  data  dev  dump.rdb  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  swapfile  sys  tmp  usr  var

#退出,生成文件
[root@localhost /]# exit
exit
Script done, file is typescript

#查看文件,里面记录了我们上面的所有操作
[root@localhost ~]# cat typescript 
Script started on Wed 29 Apr 2020 10:26:21 AM CST
[root@localhost ~]# cd /
[root@localhost /]# ls
appendonly.aof  apps  bin  boot  data  dev  dump.rdb  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  swapfile  sys  tmp  usr  var
[root@localhost /]# exit
exit

Script done on Wed 29 Apr 2020 10:26:51 AM CST

指定文件存放位置

在script命令后指定一个文件地址,这样生成的日志文件就在里面

[root@localhost ~]# script ~/script-log
Script started, file is /root/script-log

[root@localhost ~]# cd /
[root@localhost /]# ls
appendonly.aof  apps  bin  boot  data  dev  dump.rdb  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  swapfile  sys  tmp  usr  var
[root@localhost /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        486M     0  486M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M  468K  496M   1% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda1        40G   19G   19G  50% /
tmpfs           100M     0  100M   0% /run/user/0

[root@localhost /]# exit
exit
Script done, file is /root/script-log

[root@localhost ~]# cat /root/script-log 
Script started on Wed 29 Apr 2020 10:31:48 AM CST
[root@localhost ~]# cd /
[root@localhost /]# ls
appendonly.aof  apps  bin  boot  data  dev  dump.rdb  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  swapfile  sys  tmp  usr  var
[root@localhost /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        486M     0  486M   0% /dev
tmpfs           496M     0  496M   0% /dev/shm
tmpfs           496M  468K  496M   1% /run
tmpfs           496M     0  496M   0% /sys/fs/cgroup
/dev/vda1        40G   19G   19G  50% /
tmpfs           100M     0  100M   0% /run/user/0
[root@localhost /]# exit
exit

Script done on Wed 29 Apr 2020 10:32:06 AM CST

记录所有操作过程

只需要在~/.bash_profile文件最后一行添加如下命令:

[root@localhost ~]# vim ~/.bash_profile 
/usr/bin/script -qa /root/script_logs

#在这里,-q 选项代表静默记录,对方将不知道你在后台记录

[root@localhost ~]# source ~/.bash_profile

这样就可以记录所有的操作了。但是这里还是避免在服务器端直接使用cat命令去查看整个命令的数据,这样会造成整个记录文件很大。