Как сохранить изображение активного окна, когда X-сервер не запущен

Либо перенаправьте порт 80 порта виртуального бокса на виртуальную машину, либо запустите виртуальную машину в режиме моста. Затем, на вашем домашнем (ADSL? )маршрутизатор добавить правило переадресации портов для сопоставления порта 80 на стороне WAN с IP-адресом внутренней локальной сети вашего компьютера, на котором работает виртуальная машина (, если она находится в режиме nat ), или с IP-адресом виртуальной машины (, если работает в мостовом режиме ).

Сначала проверьте это с вашим общедоступным IP-адресом, прежде чем пытаться заставить доменное имя работать.

Чтобы DNS работал, в ваших зонах DNS должен быть адрес www, который будет сопоставляться с вашим общедоступным IP-адресом.

0
20.09.2019, 19:24
2 ответа

Если у вас что-то работает в X, то X все еще работает. Уничтожение X убьет большинство программ, которые его используют.

Итак, вы можете сделать несколько вещей, (помните, что вам нужно будет установить переменную DISPLAY в удаленном термине, таком какDISPLAY=:0):

  1. В Imagemagick есть утилита под названием «импорт». Запустив import -window root screenshot.png, вы получите снимок экрана.
  2. scrot может сделать снимок экрана, но я не знаю командную строку
  3. x11vnc может предоставить вам vnc-доступ к работающему X-дисплею
0
28.01.2020, 03:16

Вы хотите использовать такую ​​утилиту, какscrot.

Как только вы sshподключитесь к удаленному компьютеру, вы сможете запустить следующее:

scrot '%Y-%m-%d_$wx$h.png' -e 'mv $f /home/user/shots/' 

Эта команда сделает снимок текущего экрана с именем файла YEAR-MONTH-DAY_SCREENWIDTH_SCREENHEIGHT.pngи переместит файл в ваш каталог /shots(, если он у вас есть ). Если вам нужно запускать это через равные промежутки времени без вашего участия, вы можете создать cronjob .

Создайте сценарий bash с командой, которую вы хотите запустить. Если бы вы хотели запускать команду каждый час, это выглядело бы так:

#!/bin/bash
scrot '%Y-%m-%d-%H.png' -e 'mv $f /home/user/screenshots/'

И сохраните этот файл в соответствующем месте, например /home/user/scripts, и сделайте его исполняемым(chmod +x screenshot.sh)

Кронтаб вашего пользователя должен содержать эту строку, если вы хотите, чтобы он запускался каждый час (запустите crontab -eдля редактирования кронтаба вашего пользователя):

1 * * * * /home/user/scripts/screenshot.sh >/dev/null 2>&1

Это будет выполняться screenshot.shв первую минуту каждого часа.

В качестве альтернативы вы можете сохранить свой скрипт в /etc/cron.hourly, чтобы он выполнялся ежечасно.

Вот соответствующий пост о работе с crontab, который вам следует прочитать.

Протестируйте, чтобы убедиться, что scrotработает приемлемо для ваших нужд, а также что ваш cronjob работает правильно. Затем вы можете дополнительно автоматизировать процесс, чтобы автоматически отправить изображение по электронной почте или отправить изображение на компьютер с помощью scp.

Удачи!

1
28.01.2020, 03:16

Теги

Похожие вопросы