Найти тему
Журнал «Код»

Как работает автоматизация в компьютере

Пусть потеет машина

Когда мы пользуемся компьютером, то чаще всего запускаем нужные программы сами. Если нужно сделать резервную копию, мы сами копируем нужные файлы в безопасное место. Когда нужно отсканировать и отправить файл почтой, мы сначала сканируем, потом отправляем. И хотя компьютер многократно упрощает эту работу, какую-то часть задач мы всё равно делаем руками.

А ведь компьютер может автоматизировать и это: он умеет сам запускать любые программы по любым правилам и сам обрабатывать данные — но для этого его нужно запрограммировать. Вот об этом и поговорим.

В чём идея

Идея в том, чтобы компьютер взял на себя часть рутинных задач. Например:

  • сам делает бэкапы важных файлов локально и на удалённый сервер;
  • сам открывает браузер и почту в начале дня;
  • сам переводит папку с вордовскими отчётами в PDF, сам заливает это на сервер.

Теоретически автоматизировать можно всё что угодно. Главный признак того, что назрела автоматизация, — это когда вы периодически выполняете одни и те же или похожие действия. Например, в конце недели очищаете папку «Загрузки» на компьютере, историю в браузере, убираете лишние вкладки, к которым не обращались несколько дней, или загружаете новые фотки с телефона на компьютер, чтобы почистить память.

Почти всю автоматизацию можно разделить на две части:
- автоматизация по какому-то событию — например, когда вставили флешку или подключились к рабочему вайфаю;
- автоматизация по времени — когда что-то делается раз в час, как рабочие бэкапы, или в каждое последнее число месяца, когда компьютер сам открывает документы, которые нужно подготовить, чтобы все поставщики вам заплатили.
И то и другое компьютер может делать сам, а если что-то со временем изменится, то это всегда можно поменять или вообще отменить.

Автозагрузка при включении компьютера

Если вы после каждого включения компьютера что-то запускаете, то это можно поместить в автозагрузку. Компьютер при включении просматривает этот список и запускает все программы, которые в нём есть.

В Windows, чтобы посмотреть, что уже лежит в автозагрузке, нажмите Ctrl+Shift+Esc и выберите вкладку «Автозагрузка»:

-2

Есть и другой способ — запустить терминал и выполнить там такую команду: shell:startup. Откроется папка, куда можно перетаскивать свои программы или удалять оттуда то, что не нужно.

Чтобы добавить в этот список что-то своё, найдите ярлык, который запускает нужную вам программу. Обычно он есть на рабочем столе. Если его нет — зайдите в меню «Пуск», найдите нужную программу, щёлкните правой кнопкой мыши и выберите «Дополнительно» → «Перейти к расположению файла»:

-3

Когда в проводнике откроется папка с нужным ярлыком, скопируйте его и вставьте в папку с автозагрузкой. После этого при следующей перезагрузке ваша программа запустится вместе с компьютером.

На MacOS всё проще — в системных настройках находите «Пользователи и группы», а в них выбираете своего пользователя и переходите на вкладку «Объекты входа». Чтобы добавить приложение, нажимаем плюс, удалить из автозагрузки — минус:

-4

-5

Запуск приложения вместе с другим

Иногда бывает так: чтобы сделать какой-то проект, нужно запустить сразу несколько программ — например, редактор кода, браузер, виртуальную машину и музыкальный плеер.

Можно это всё запускать руками и по очереди, а можно написать один раз простой скрипт, который запустит всё сам и даже откроет сразу нужные документы или применит необходимые настройки.

В Windows такие вещи делаются в приложении Autohotkey и RoboTask.

На MacOS для этого можно использовать приложение Alfred в режиме Workflow:

-6

Этот воркфлоу запускает четыре приложения, которые нужны для работы видеомикшера. Чтобы делать это быстрее, они привязаны к одной команде.

Автоматические действия, когда подключили флешку, диск или другое устройство

Самый популярный пример на эту тему — автоматические бэкапы на флешку, когда она вставлена в компьютер. Вставили — сразу началось резервное копирование, незаметное и надёжное.

Если пойти ещё дальше, можно сделать так, чтобы на разные флешки или внешние диски копировались разные данные. На большой внешний жёсткий диск — основные бэкапы, на мелкую флешку — только рабочие документы, на другую флешку — фото и документы.

Сюда же можно отнести реакцию на любые другие внешние события. Например, когда вы подключаетесь к рабочему вайфаю, у вас сразу открывается корпоративный портал в браузере, синхронизируется почта, запускается зум и в корпоративный чат отправляется фраза «Здравствуйте, коллеги, давайте начинать».

Чтобы такая магия работала, нужно уметь писать скрипты и работать со служебными настройками компьютера. Это не так сложно, как кажется, и про это тоже будет отдельная статья.

Действия по расписанию

Допустим, вы уходите с работы в 6 вечера и перед уходом вам нужно закрыть часть рабочих программ, убедиться, что все сегодняшние данные отправились на сервер и отправить письмо боссу с отчётом за день. В этом случае можно настроить запуск скрипта (или программ по очереди) на 17:50, чтобы компьютер сам всё это сделал. Вам останется только написать текст письма и нажать «Отправить».

Точно так же можно раз в неделю отправлять бэкапы на свой сервер, заливать новые книги на телефон, чтобы было что почитать в дороге, или запускать служебные программы для проверки дисков.

Самый простой способ сделать что-то по расписанию — программа crontab. Она уже встроена в MacOS и Linux, а для Windows есть её полный аналог nnCron Lite, которую написал Николай Немцев. Для всех жителей СНГ программа бесплатная, поэтому будем её использовать в дальнейших проектах.

Сложные цепочки действий

Если идти дальше, то можно автоматизировать рутинные задачи с документами. Например:

  • Наложить на фотографию имя автора и добавить водяной знак.
  • Преобразовать текст в аудиофайл и сохранить на сервер.
  • Сделать из одной картинки десять картинок разных размеров для десяти разных площадок.
  • Преобразовать видеофайл в другой формат, сохранить резервную копию на диск, выдрать из видеофайла аудиодорожку и отправить её на расшифровку в облако.

Один из инструментов для этого — среда Automator в Mac OS. На скриншоте ниже — скрипт, который делает скриншот выделенной области экрана, меняет размер этой картинки и накладывает на неё изображение, будто это видеоролик. Получается картинка-превьюшка, по которой люди могут кликнуть, чтобы посмотреть видео:

В Mac OS Automator встроен, а в Windows нужно либо ручками написать скрипт, либо использовать софт типа Autohotkey
В Mac OS Automator встроен, а в Windows нужно либо ручками написать скрипт, либо использовать софт типа Autohotkey

Perl-скрипты

На серверах и в корпоративной среде часто используют скрипты на языке Perl, чтобы автоматизировать взаимодействие между программами. Дело в том, что интерпретатор Perl умеет запускать другие программы, забирать у них данные, передавать им данные и всячески ими помыкать. Понятно, что Perl — не самый распространённый язык, но он работает как своего рода клей между программами на серверах по всему миру.

Прочитайте об этом в нашей статье о Perl.

Что дальше

Дальше сделаем всё, о чём мы сегодня говорили, на практике — настроим все виды автоматизации, чтобы оставалось больше времени на себя и свои дела.