User Tools

Site Tools


public:remote_screen_capture_of_desktop

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
public:remote_screen_capture_of_desktop [2020/10/02 14:21] – created rhudakpublic:remote_screen_capture_of_desktop [2024/01/25 03:31] (current) – external edit 127.0.0.1
Line 7: Line 7:
 **Names:** **Names:**
   * <color #1c1ced>shipuser@shiplinux</color>   * <color #1c1ced>shipuser@shiplinux</color>
-  * <color #1c1ced>landuser@landserver</color>+  * <color #1c1ced>landuser@landserver</color> 
   * <color #1c1ced>me@mycomputer</color>   * <color #1c1ced>me@mycomputer</color>
 +
 +## <color #1c1ced>landuser@landserver</color> must be able to ssh into <color #1c1ced>shipuser@shiplinux</color> Set up a ssh key so this is automatic.
 +
 +## <color #1c1ced>me@mycomputer</color> must be able to ssh (with a key) into <color #1c1ced>landuser@landserver</color>
 +
 +====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 ##
 +  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 +  <html><head>
 +  <meta http-equiv="Refresh" content="300">
 +  <title>ShipX Desktop</title></head>
 +  <body>
 +  <img src="./shipuser_screenshotX.png" style="width: 100%"/>
 +  <br>
 +  <br>
 +  <br>
 +  </body></html>
 +  
 +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 <color #1c1ced>landuser@landserver</color> 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.**
public/remote_screen_capture_of_desktop.1601648504.txt.gz · Last modified: 2024/01/25 03:32 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki