Scrot:在 Linux 中自动截取桌面 / 服务器截图的命令行工具
Scrot ( SCReenshOT ) 是一个开源、强大且灵活的命令行实用程序,用于手动或通过Cron作业自动截取桌面、终端或特定窗口的屏幕截图。Scrot 类似于 Linux 的“ import ”命令,但使用“ imlib2 ”库来捕获和保存图像。它支持多种图像格式(JPG、PNG、GIF 等),您可以在使用该工具截取屏幕截图时指定这些格式。
Scrot 的特点
- 使用 scrot 我们可以轻松地截屏,而无需任何额外的工作。
- 我们还可以优化屏幕截图图像的质量(使用-q开关,后跟1到100之间的质量级别)。默认质量级别为75。
- 安装和使用非常容易。
- 我们可以借助开关来捕获屏幕上的特定窗口或矩形区域。
- 可以获取特定目录中的所有屏幕截图,也可以将所有屏幕截图存储在远程 PC 或网络服务器中。
- 可以在管理员不在的情况下监控所有台式电脑并防止不必要的活动。
在 Linux 中安装 Scrot
我们可以在任何 Linux 发行版上安装“ Scrot ”。如果您使用的是基于RedHat或Debian 的发行版,则可以使用yum或apt-get等包管理器工具来安装它,如下所示。
# yum install scrot [On RedHat based Systems]
$ sudo apt-get install scrot [On Debian based Systems]
如果您希望从源代码安装它,请使用以下命令。
$ wget http://linuxbrit.co.uk/downloads/scrot-0.8.tar.gz $ tar -xvf scrot-0.8.tar.gz $ cd /scrot-0.8 $ ./configure $ make $ su -c "make install"
注意:RedHat 用户需要使用 configure 命令指定前缀位置。
$ ./configure --prefix=/usr
如何使用 Scrot 截屏
正如我上面所说,scrot 可以捕获整个桌面、终端或特定窗口。借助 scrot,您还可以对不支持 GUI 的系统的 shell/终端进行屏幕截图。
截取整个桌面的屏幕截图
让我们使用终端中的以下命令来截取整个桌面的屏幕截图。
$ scrot /home/example/Desktop.jpg
拍摄特定窗口的屏幕截图
如果您想捕获屏幕上的特定区域,您可以使用以下命令和“-s”开关,该命令允许您使用鼠标以交互方式选择您想要截屏的区域。
scrot -s /home/example/Window.jpg
调整图像质量
借助 ' -q ' 开关,您可以指定1到100之间的图像质量级别。默认图像级别设置为75,图像输出将根据您指定的文件格式而有所不同。
以下命令将捕获原始高质量屏幕质量90%的图像。
$ scrot -q 90 /home/example/Quality.jpg
自动截屏
现在,如果您想自动获取屏幕截图,则需要创建一个简单的 shell 脚本。使用“ touch ”命令创建一个文件“ screen.sh ” ,并向其中添加以下内容。
#!/bin/sh DISPLAY=:0 scrot 'example-%Y-%m-%d-%H_%M.jpg' -q 20 && mv /home/example/*.jpg /media/example
现在授予“ 777 ”权限并设置一个Cron作业。
$ chmod 777 screen.sh
打开“ crontab ”文件并添加以下条目。您可以定义自定义间隔时间。
$ crontab -e
*/1 * * * * sh /home/example/screen.sh
上述Cron条目将每 ' 1 ' 分钟运行一次并截取屏幕截图,并将其存储在 ' /media/example ' 目录下,文件名为日期和时间。运行脚本1分钟后,这是我在 ' example'目录中发现的内容。