script命令
简介有时候在操作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命令去查看整个命令的数据,这样会造成整个记录文件很大。