ウェブサイト検索

Scrot: Linuxでデスクトップ/サーバーのスクリーンショットを自動的に撮るコマンドラインツール


Scrot (SCReenshOT) は、デスクトップ、ターミナル、または特定のウィンドウのスクリーンショットを手動またはCronジョブによって自動で取得するためのオープンソースで強力かつ柔軟なコマンドラインユーティリティです。ScrotはLinuxのimportコマンドに似ていますが、画像のキャプチャと保存にimlib2ライブラリを使用しています。スクリーンショットを取得する際に指定できる複数の画像形式(JPG、PNG、GIFなど)をサポートしています。

スコルットの特徴

  1. Scrotを使えば、追加の作業なしで簡単にスクリーンショットを撮ることができます。
  2. スクリーンショットの画像の品質も最適化できます(-qスイッチを使用し、その後に1から100の間の品質レベルを指定します。デフォルトの品質レベルは75です)。
  3. インストールと使用は非常に簡単です。
  4. スイッチの助けを借りて、特定のウィンドウや画面の長方形の領域をキャプチャできます。
  5. 特定のディレクトリ内のすべてのスクリーンショットを取得でき、さらにすべてのスクリーンショットをリモートPCまたはネットワークサーバーに保存することもできます。
  6. 管理者不在時にすべてのデスクトップ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サポートのないシステムのシェル/ターミナルのスクリーンショットを撮ることもできます。

フルデスクトップスクリーンショットを撮る

次のコマンドをターミナルに入力して、デスクトップの全画面スクリーンショットを取得しましょう。

$ scrot /home/tecmint/Desktop.jpg

特定のウィンドウのスクリーンショットを取る

画面の特定の領域をキャプチャしたい場合は、‘-s’ スイッチを使って、マウスでキャプチャしたい領域をインタラクティブに選択できる次のコマンドを使用できます。

scrot -s /home/tecmint/Window.jpg

画像品質を調整する

‘-q’スイッチを使うことで、画像の品質レベルを1から100の間で指定できます。デフォルトの画像レベルは75に設定されており、指定したファイル形式によって画像出力が異なります。

以下のコマンドは、元の高品質な画面の90%の品質で画像をキャプチャします。

$ scrot -q 90 /home/tecmint/Quality.jpg

スクリーンショットを自動的に撮る

自動的にスクリーンショットを取得したい場合は、シンプルなシェルスクリプトを作成する必要があります。‘screen.sh‘というファイルを作成し、‘touch‘コマンドを使用して、以下の内容を追加してください。

#!/bin/sh
DISPLAY=:0 scrot 'tecmint-%Y-%m-%d-%H_%M.jpg' -q 20 && mv /home/tecmint/*.jpg /media/tecmint

今「777」の権限を付与し、Cronジョブを設定してください。

$ chmod 777 screen.sh

‘crontab’ファイルを開いて、以下のエントリーを追加してください。カスタムの間隔時間を定義できます。

$ crontab -e
*/1 * * * * sh /home/tecmint/screen.sh

上記のCronエントリは毎‘1‘分ごとに実行され、スクリーンショットを撮影し、それらを‘/media/tecmint‘ディレクトリに日付と時刻のファイル名で保存します。スクリプトを1分間実行した後、私の‘tecmint‘ディレクトリにはこれがありました。

参照リンク

http://linuxbrit.co.uk/software/

関連記事: