=======Remote Screen Capture of a Desktop=======
**Scenario:** The ship has a linux computer, you want a desktop screen capture
that you can view on your own local computer.
**Names:**
* shipuser@shiplinux
* landuser@landserver
* me@mycomputer
## landuser@landserver must be able to ssh into shipuser@shiplinux Set up a ssh key so this is automatic.
## me@mycomputer must be able to ssh (with a key) into landuser@landserver
====Step 1: On the Ship====
Make a bash script that looks like this:
## begin remote_screenshot.bash ##
#!/bin/bash
## store the image in ~/tmp
## image will be called "screenshotX.png"
cd ~/tmp; DISPLAY=":0.0" import -window root screenshotX.png
## give a clue
echo "on ship: desktop captured in ~/tmp/screenshotX.png"
Make it executable and test:
**remote_screenshot.bash**
And view the figure it made: **~/tmp/screenshotX.png**
====Step 2: On Shore====
And on the landside server, make this script to execute screenshotX.png on the ship, and rsync the file back. Call this one **remote_shipX_screenshot.bash**
## begin script to get the screenshot back to the landserver ##
#!/bin/bash
## works best if there is an ssh key on the remote machine
# - make the remote command for screenshot
# - this example requires a port to log in
ssh -p ##### shipuser@shipserver /path/to/remote_screenshotX.bash
## bring it back, put it in /tmp
echo "bringing back the screenshot"
rsync -Pv -e 'ssh -p 56565' shipuser@shipserver:tmp/screenshotX.png /tmp
## move it to the location of choice
mv /tmp/screenshotX.png /path/to/server/shipX/shipuser_screenshotX.png
Test it by running
**/path/to/scripts/remote_shipX_screenshot.bash**
and view the png
====Step 3: Wrapping with an HTML====
Now if you are on the landserver you can look at the png file. If you want the png served up on a web location, you can look at it directly. If you want an html to wrap it, so it refreshes every so often,
put this in the same location as shipuser_screenshotX.png:
**shipuser_screenshotX.html**
##begin html file to display shipuser_screenshtX.png ##
ShipX Desktop
Then you can browse to this page and it will refresh every 5 min: http://shipserver/path/to/shipX/shipuser_screenshotX.html
====Step 4: Creating a cronjob====
Make the landuser@landserver have a crontab entry to run the program
hourly at 10 min past the hour.
**NOTE:** crontab does not have a good environment so if you need to set your PATH, do so in a bash_env file and source that before running the command. That's how I did it. Or be very explicit about setting your PATH first.This is all **one line**:
10 */1 * * * (date +\%F\ \%T; cd /path/to/myenv; . ./bash_env;
/path_to_script/remote_shipX_screenshot.bash) >> /path/to/logfiles/shipXscreenshot.log 2>&1
**Another note:** I also outputted the stdout to a log file.
====Step 5: Running from your laptop====
ssh landuser@landserver /path/to/scripts/remote_shipX_screenshot.bash
or make an alias:
alias get_shipX_screenshot='ssh landuser@landserver /path/to/scripts/remote_shipX_screenshot.bash; echo o
"view this file"; echo "";echo http://shipserver/path/to/shipX/shipuser_screenshotX.html'
***Special thank you to Jules Hummon for providing steps/codes above.**