Гид по технологиям

Автоматические скриншоты в Ubuntu: как снять снимок каждые N секунд

• 5 min read • Ubuntu • Обновлено 23 Nov 2025
Скриншоты каждые N секунд в Ubuntu
Скриншоты каждые N секунд в Ubuntu

Что такое scrot

Scrot — простая командная утилита командной строки для захвата скриншотов в X11/Wayland (через совместимость). Коротко: запускаете команду — получаете файл изображения.

Установка scrot

Scrot доступен в репозиториях Ubuntu. Установите одной из команд в терминале:

sudo apt update
sudo apt install scrot

Если вы предпочитаете графические инструменты, scrot можно найти в «Ubuntu Software», но командная установка часто быстрее.

Базовая команда для съёмки

Базовый запуск одной съёмки выглядит так:

scrot 'screenshot.png'

Чтобы задать задержку перед съёмкой в секундах, используйте опцию -d:

scrot -d 5 'screenshot.png'

Опция -e позволяет выполнить команду после создания файла, например переместить файл в папку:

scrot -d 5 '%Y-%m-%d_%H-%M-%S.png' -e 'mv $f ~/Pictures/'

Важно: в таймстемпах рекомендуется избегать двоеточий (“):” в именах файлов, если вы планируете переносить их на другие ОС (например, Windows). В примере выше двоеточия заменены на дефисы/подчёркивания.

Съёмка скриншотов через регулярные интервалы (бесконечный цикл)

Чтобы запускать scrot в цикле бесконечно, используйте while true:

while true; do
  scrot -d 5 '%Y-%m-%d_%H-%M-%S.png' -e 'mv $f ~/Pictures/'
done

Эта команда будет пытаться делать снимок каждые 5 секунд. Нажмите Ctrl+C, чтобы остановить процесс.

Важно: на некоторых системах scrot тратит 0.5–2 секунд на создание и запись файла; поэтому фактический интервал между кадрами может быть больше заданного. При необходимости увеличьте задержку, чтобы учесть это.

Ограниченное число снимков (например, 100)

Если нужно сделать фиксированное число снимков, используйте for-цикл:

for i in {1..100}; do
  scrot -d 5 '%Y-%m-%d_%H-%M-%S.png' -e 'mv $f ~/Pictures/'
done

Это сделает ровно 100 снимков с 5-секундной задержкой перед каждым.

Скрипт для повторного использования

Лучше поместить команду в скрипт, чтобы не набирать её вручную каждый раз.

  1. Создайте файл ~/auto-screenshot.sh и вставьте:
#!/bin/bash

# Параметры
DELAY=5                # задержка в секундах перед каждой съёмкой
COUNT=100              # количество снимков; 0 = бесконечно
OUT_DIR="$HOME/Pictures"
FORMAT='%Y-%m-%d_%H-%M-%S.png'

mkdir -p "$OUT_DIR"

if [ "$COUNT" -eq 0 ]; then
  while true; do
    scrot -d "$DELAY" "$FORMAT" -e "mv $f $OUT_DIR/"
  done
else
  for i in $(seq 1 $COUNT); do
    scrot -d "$DELAY" "$FORMAT" -e "mv $f $OUT_DIR/"
  done
fi
  1. Сделайте скрипт исполняемым:
chmod +x ~/auto-screenshot.sh
  1. Запускайте:
~/auto-screenshot.sh

Теперь вы легко меняете DELAY и COUNT в начале файла.

Автоматизация: cron, systemd и графические планировщики

  • Cron: для простого расписания (например, запуск каждый день в 09:00) добавьте запись в crontab:
# открыть crontab
crontab -e

# пример: запуск скрипта каждый день в 9:00
0 9 * * * /home/username/auto-screenshot.sh
  • systemd timers: современная альтернатива cron, более гибкая и лучше интегрируется с журналированием. Создайте .service и .timer (необходимо привести unit-файлы по необходимости).

  • Gnome Schedule: графический интерфейс-обёртка для cron (подходит пользователям GNOME).

  • CuttleFish и другие автоматизаторы событий: позволяют запускать команды по условию (например, при смене окна, появлении уведомления и т.д.).

Выбор между cron и systemd зависит от требований: cron прост для периодики по календарю, systemd удобнее для логики запуска, перезапуска и управления зависимостями.

Альтернативные инструменты

  • Flameshot — удобный графический инструмент с аннотацией и быстрыми сочетаниями клавиш.
  • gnome-screenshot — стандартный инструмент GNOME; можно запускать из командной строки.
  • maim — быстрая альтернатива для X11; часто используется с slop для выбора области.
  • import (ImageMagick) — полезен для скриптов и конвертаций.
  • ffmpeg — захват кадров из видеопотока или записи экрана (полезно для timelapse, где нужны последовательные кадры в высоком разрешении).

Когда выбирать scrot: когда нужен простой, лёгкий и портативный инструмент без GUI.

Примеры случаев использования

  • Создание timelapse презентации рабочего процесса.
  • Мониторинг визуального состояния удалённого рабочего стола.
  • Автоматическая съёмка интерфейсных багов в QA.
  • Документирование изменений в интерфейсе для дизайнеров.

Когда такой подход не подойдёт

  • Если нужна высокая частота кадров (десятки кадров в секунду) — scrot и циклы shell малопригодны; лучше использовать специализированные инструменты (ffmpeg, видеозапись с последующей нарезкой кадров).
  • Если требуется захват защищённого контента (DRM) — стандартные инструменты могут не работать.
  • На Wayland некоторые утилиты могут вести себя иначе; убедитесь в совместимости с окружением рабочего стола.

Чек‑лист по ролям

  • Для системного администратора:

    • Убедиться в стабильности диска и праве записи в папку назначения.
    • Настроить ротацию/очистку файлов при большом объёме снимков.
  • Для QA-инженера:

    • Проверить, что формат и временные метки соответствуют требованиям отчётности.
    • Автоматизировать запуск и сбор артефактов после теста.
  • Для дизайнера:

    • Выбрать формат PNG для качества без потерь; JPG для экономии места.

Шпаргалка по формату имени и опциям scrot

  • %Y — год (4 цифры)
  • %m — месяц (2 цифры)
  • %d — день
  • %H — час (24h)
  • %M — минута
  • %S — секунды
  • $f — переменная, содержащая путь к созданному файлу (в -e)

Полезные опции scrot:

  • -d N — задержка N секунд перед съёмкой
  • -q N — качество для JPEG (0–100)
  • -u — только активное окно
  • -s — интерактивный выбор области
  • -e ‘cmd’ — выполнить cmd после создания файла

Критерии приёмки

  • Файлы успешно создаются в указанной папке.
  • Количество файлов соответствует ожидаемому (если счёт ограничен).
  • Интервал между кадрами укладывается в допустимые пределы с учётом лагов ОС.
  • Скрипт не оставляет зависших процессов при преждевременной остановке.

Мини‑методология для безопасного развёртывания

  1. Тест на машине разработчика: запустите с малым COUNT и проверьте результаты.
  2. Настройка ротации: при большом объёме снимков добавьте cron/systemd задачу для очистки старых файлов.
  3. Логирование: перенаправляйте вывод в лог для отладки: /var/log/auto-screenshot.log.
  4. Мониторинг: проверяйте свободное место на диске, чтобы избежать переполнения.

Пример systemd timer (упрощённо)

Создайте /etc/systemd/system/auto-screenshot.service:

[Unit]
Description=Auto Screenshot Service

[Service]
Type=oneshot
ExecStart=/home/username/auto-screenshot.sh

Создайте /etc/systemd/system/auto-screenshot.timer:

[Unit]
Description=Run auto-screenshot daily at 09:00

[Timer]
OnCalendar=*-*-* 09:00:00
Persistent=true

[Install]
WantedBy=timers.target

Затем включите и запустите таймер:

sudo systemctl daemon-reload
sudo systemctl enable --now auto-screenshot.timer

Короткий глоссарий

  • scrot — утилита для скриншотов в терминале
  • cron — планировщик задач по расписанию
  • systemd timer — более современный планировщик, интегрированный с systemd

Дерево решений (Mermaid)

flowchart TD
  A[Нужны автоматические скриншоты?] --> B{Высокая частота кадров?}
  B -- Да --> C[Используйте ffmpeg или запись видео]
  B -- Нет --> D{Нужны аннотации/взаимодействие?}
  D -- Да --> E[Flameshot или GUI-инструменты]
  D -- Нет --> F[Scrot + скрипт]
  F --> G{Планирование по времени?}
  G -- Да --> H[cron / systemd timer]
  G -- Нет --> I[Запуск вручную / CuttleFish по событию]

Примеры тестов и критерии приёмки

  • Запуск скрипта с COUNT=10, DELAY=3: проверить, что создано ровно 10 файлов и интервал ~3–4 секунды.
  • Проверить корректность формата имён и отсутствие запрещённых символов для целевых ОС.
  • Симулировать заполнение диска: убедиться, что у скрипта есть логика ротации/уведомления.

Скриншоты, сохранённые в папке Pictures в Ubuntu

Подпись: Пример набора скриншотов, сохранённых в папке Pictures.

Резюме

Использование scrot в цикле — простой и эффективный способ делать автоматические скриншоты в Ubuntu. Для длительных или массовых съёмок учитывайте задержки на запись, настройте ротацию файлов и выбирайте формат изображений согласно цели. Для расписаний используйте cron или systemd timers; для более сложных условий — инструменты автоматизации событий.

Важно: тестируйте скрипты на небольших объёмах перед развёртыванием и следите за дисковым пространством.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро