Автоматические скриншоты в Ubuntu: как снять снимок каждые N секунд
Что такое 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-секундной задержкой перед каждым.
Скрипт для повторного использования
Лучше поместить команду в скрипт, чтобы не набирать её вручную каждый раз.
- Создайте файл ~/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- Сделайте скрипт исполняемым:
chmod +x ~/auto-screenshot.sh- Запускайте:
~/auto-screenshot.shТеперь вы легко меняете DELAY и COUNT в начале файла.
Автоматизация: cron, systemd и графические планировщики
- Cron: для простого расписания (например, запуск каждый день в 09:00) добавьте запись в crontab:
# открыть crontab
crontab -e
# пример: запуск скрипта каждый день в 9:00
0 9 * * * /home/username/auto-screenshot.shsystemd 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 после создания файла
Критерии приёмки
- Файлы успешно создаются в указанной папке.
- Количество файлов соответствует ожидаемому (если счёт ограничен).
- Интервал между кадрами укладывается в допустимые пределы с учётом лагов ОС.
- Скрипт не оставляет зависших процессов при преждевременной остановке.
Мини‑методология для безопасного развёртывания
- Тест на машине разработчика: запустите с малым COUNT и проверьте результаты.
- Настройка ротации: при большом объёме снимков добавьте cron/systemd задачу для очистки старых файлов.
- Логирование: перенаправляйте вывод в лог для отладки: /var/log/auto-screenshot.log.
- Мониторинг: проверяйте свободное место на диске, чтобы избежать переполнения.
Пример 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.
Резюме
Использование scrot в цикле — простой и эффективный способ делать автоматические скриншоты в Ubuntu. Для длительных или массовых съёмок учитывайте задержки на запись, настройте ротацию файлов и выбирайте формат изображений согласно цели. Для расписаний используйте cron или systemd timers; для более сложных условий — инструменты автоматизации событий.
Важно: тестируйте скрипты на небольших объёмах перед развёртыванием и следите за дисковым пространством.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента