В данном посте обсуждаются базовые принципы написания скриптов и работа планировщика заданий в Oracle Linux. Рассматриваются следующие вопросы:
1. Скрипты в ОС Linux
Скрипты в ОС на базе Linux – это набор команд, записанных в файл. Это делается с целью быстрого и удобного вызова последовательности этих команд. Скрипты могут выполнять самые разные задачи – от автоматизации рутинных действий системного администратора до реализации сложных алгоритмов для ИТ инфраструктуры. При этом результаты работы команд могут служить входными данными для других задач (команд).
Для того, чтобы превратить файл с набором команд в скрипт, понадобятся две вещи. Во-первых, в первой строке пустого файла необходимо прописать путь к командной оболочке, которая будет исполнять данный файл. В большинстве дистрибутивов Linux данной оболочкой является Bash, и соответственно первой строкой будет #!/bin/bash.
В других строках символ решетки используется для обозначения комментариев, которые не будут обработаны оболочкой. Однако, первая строка — это особый случай, здесь решетка, за которой следует восклицательный знак (эту последовательность называют шебанг) и путь /bin/bash, указывают системе что данный скрипт создан именно для оболочки bash. Во вторых, чтобы скрипт запустить как исполняемый файл, ему необходимо дать права на исполнение, иначе, попытка его запуска даст ошибку Permission denied.
Схема запуска на оптимизации.
Пример ошибки, когда запускается неисполняемый файл:
Права на исполнение даются командой chmod. Например,
chmod +x filename.sh
Данная команда дает всем пользователям операционной системы право на запуск файла с именем filename.sh
Право на запуск того же файла только владельцу можно дать следующей командой: chmod u+x filename.sh.
Расширение .sh не обязательно, но таким образом легче определять, какой файл является скриптом.
Ниже рассматривается пример написания простейшего скрипта, копирующего все файлы из папки /home/rustam/Documents в папку /tmp/backup.
#!/bin/bash # Скрипт копирует файлы в папку /tmp/backup/ echo “Сейчас начнется копирование…” cp /home/rustam/Documents/* /tmp/backup/
При работе со скриптами могут использоваться переменные. Они позволяют хранить в файле сценария различную информацию, например, результаты работы одних команд для дальнейшего их использования для других команд.
Исполнение отдельных команд без хранения результатов работы ограничивают их возможности.
Существуют два типа переменных, которые используются в bash-скриптах:
- Переменные среды
Используются при необходимости работы с системными данными в командах оболочки. Например, требуется вывести домашнюю директорию текущего пользователя. Список переменных для среды конкретного пользователя выдается командой env.
echo «Home for the current user is: $HOME»
Можно использовать системную переменную $HOME в двойных кавычках, что не помешает ее распознаванию системой.
- Пользовательские переменные
В дополнение к переменным среды, bash-скрипты позволяют задавать и использовать в скрипте свои собственные переменные. Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария. Как и в случае с системными переменными, к пользовательским переменным обращаются используя знак доллара:
Уроки Arduino #4 — функции времени
#!/bin/bash age=34 name=»Rustam» echo «$name is $age years old»
Дополним соответствующим образом скрипт, написанный ранее – добавляется переменная для хранения пути к папке, в которую осуществляется копирование.
#!/bin/bash # Скрипт копирует файлы в папку /tmp/backup/ # В переменной dest_dir хранится путь к папке, который подставляется в команду ниже dest_dir=»/tmp/backup/» echo “Сейчас начнется копирование…” cp /home/rustam/Documents/* $dest_dr
2. Что такое планировщик заданий. Работа сервиса cron.
Часто возникают ситуации, в которых приходится автоматизировать различные задачи по обслуживанию и работе с Linux с помощью скриптов. В этом случае удобно, если скрипт выполняет необходимые команды без участия пользователя. Для этого настраивается автоматический запуск требуемого скрипта в заданное время.
Для указанной настройки в Linux используется системный сервис cron. Это планировщик, который позволяет выполнять необходимые скрипты раз в час, раз в день, неделю или месяц, а также в любое заданное время или через любой интервал времени. Сервис cron также часто используется другими службами операционной системы.
Как и большинство других сервисов Linux, cron запускается при старте системы и работает в фоновом режиме. Его основная задача – выполнять требуемые процессы в заданное время. Существует несколько конфигурационных файлов, из которых берется информация о том, что и когда нужно выполнять. Cron открывает файл /etc/crontab, в котором указываются необходимые данные.
Для настройки времени, даты и интервала выполнения задания, используется специальный синтаксис файла cron и специальная команда. Не рекомендуется непосредственно редактировать файл /etc/crontab. Вместо этого используется команда crontab. Ниже запускается команда crontab с ключом –e для редактирования файла
crontab -e
Рекомендуется ее выполнять с опцией -e, тогда для редактирования правил используется текстовый редактор по умолчанию. После выполнения команды открывается временный файл, в котором записаны текущие правила cron и есть возможность добавлять новые. Добавленные правила запускаются именно от того пользователя, от имени которого они были добавлены.
Файлы crontab, используемые для управления работой планировщика, располагаются в каталоге /etc/cron.d/. Кроме того, в каталогах /etc/cron.daily/, /etc/cron.weekly/ и /etc/cron.monthly/ размещаются автоматически запускаемые программы (ежедневно, еженедельно или ежемесячно).
Вывод содержимого текущего файла позволяет команда:
crontab -l
Таблица crontab состоит из 6 колонок, которые разделяются пробелами или табуляторами. Первые пять колонок отвечают за время выполнения, соответственно, минута, час, день месяца, месяц, день недели. В них может находиться: число, список чисел (1,2,3), диапазон чисел (1-3), символы * или /. Все остальные символы в строке интерпретируются как выполняемая команда с ее параметрами – можно указать как саму команду (например, echo “Доброе утро”), так и путь к исполняемому скрипту.
Как запускать скрипты через cron
Скрипты запускаются через cron, указанием команды либо пути к скрипту в последней колонке.
Обязательно требуется прописывать полный путь к команде, так как для команд, запускаемых от имени сервиса cron, переменная пользовательской среды PATH будет отличаться, и сервис не сможет найти команду.
Пример запуска ранее созданного скрипта filename.sh, который копирует файлы каждый день в 23:00:
0 23 * * * /home/rustam/filename.sh
или копирует файлы каждые 5 минут:
0 23 * * * /home/rustam/filename.sh
3. Примеры
Ниже приведены примеры настройки и работы cron:
0 17 * * 1-5 echo “Рабочий день закончен – эта надпись выводится в 17:00 с понедельника по пятницу”
15 6 * * sun echo “Выполняется в 6:15 в воскресенье”
30 12,13 * * 1,3 echo “Эта надпись выводится в понедельник и среду в 12:30 и 13:30”
0-59 * * * * echo “Выполняется ежеминутно”
Источник: rustamkhodjaev.com
Лучшие альтернативы планировщику задач в Windows
Планировщик задач Windows — полезная часть операционной системы Windows, которая позволяет автоматизировать и планировать приложения и сценарии (Пакетные файлы), чтобы запускать их, как и когда вы хотите. В руках опытного пользователя вы можете творить настоящее волшебство с помощью этого прилагаемого инструмента, но для многих это не самый удобный интерфейс!
К счастью, есть множество сторонних альтернатив планировщика задач Windows на выбор. Некоторые из них упрощают работу, другие добавляют более продвинутые функции.
1. Расширенный планировщик задач
Advanced Task Scheduler — это пробное приложение, которое вы можете попробовать в течение 30 дней, чтобы убедиться, что оно работает для вас и дает ли вам то, что вам нужно. Хотя оно может быть платным, базовая версия приложения стоит менее 39.95 долларов и предлагает приличный набор функций за те деньги, которые вы платите.
Если у вас несколько рабочих станций, это может быстро стать дорогим. Однако домашний пользователь с одним устройством, которое нуждается в лучшей автоматизации, может почувствовать, что цена того стоит за предлагаемые функции.
Расширенный планировщик задач может запускать приложения, запускать сценарии, выполнять командные файлы и, как правило, выполнять задачи без вашего присутствия. Вы можете запланировать задачи для всех пользователей и даже запланировать «скрытые задачи», которые происходят, когда никто не вошел в систему.
Список вещей, которые может выполнять Advanced Task Scheduler, довольно длинный, но примечательные функции включают:
- убить операции.
- Копируйте, перемещайте и удаляйте файлы.
- Загрузите из источников HTTP и FTP.
- Отправьте определенные последовательности клавиш.
Также существует большая гибкость с различными типами расписаний, которые могут привести к действиям, предпринимаемым при возникновении определенных условий. Это включает в себя некоторые очень полезные элементы, например, когда компьютер находится в режиме ожидания, не в режиме ожидания или когда нажата определенная горячая клавиша. Частотный график также является исчерпывающим. От одного раза в минуту до одного раза в год.
Если вы хотите больше эзотерических опций (например, играть во что-нибудь в случайное время), вам придется заплатить за профессиональную версию, но мы думаем, что большинству людей подойдет базовый пакет.
2. Задача до рассвета
Task Till Dawn — это совершенно бесплатная альтернатива планировщику задач Windows, которая уже доступна как для Windows, так и для macOS. Более того, вы можете перемещать одни и те же рабочие процессы между двумя версиями приложения.
Если у вас есть несколько рабочих станций, которым требуется один и тот же набор автоматических задач, таких как создание резервных копий, вы можете настроить одну задачу, а затем использовать функцию экспорта в Task Till Dawn, чтобы легко скопировать ее на любое другое устройство.
Задачи также можно сгруппировать по типу, чтобы упростить управление автоматизированными задачами.
С Task Till Dawn можно делать довольно крутые вещи. Вот некоторые ключевые примеры от разработчика:
- Автоматическое подключение к сетевому хранилищу при запуске.
- Распечатайте любые файлы, которые вы отправляете в определенную папку.
- Скопируйте файлы с USB-устройства после его подключения.
Существует также портативная версия приложения, поэтому вы можете запускать ее с USB-накопителя! В общем, для полностью бесплатного приложения Task Till Dawn — одна из самых гибких и удобных альтернатив, которые мы видели.
3. Планировщик Z-Cron
Z-Cron — это бесплатная версия приложения-планировщика задач, в которой есть все функции, которые могут понадобиться среднему пользователю. Однако есть платные версии, которые специально разработаны для рабочих станций и серверов и используются в профессиональных контекстах. Это бесплатно только для личного использования, что является очень приятным жестом со стороны разработчика.
Z-Cron может делать то, что вы ожидаете от приложения планировщика задач в Windows. Вы можете запустить приложение в любое заранее определенное время, запустить его с указанными параметрами, а затем остановить его, когда задача будет завершена. Его довольно легко использовать, это отличная альтернатива планировщику задач Windows, и большинству пользователей, вероятно, не придется платить за платную версию.
Скачать : Планировщик Z-Cron (Бесплатно для личного пользования)
4. РобоИнтерн
Как следует из названия, RoboIntern — это пакет приложений, предназначенный для автоматизации повседневных производственных задач. В отличие от универсального приложения для планирования задач, RoboIntern специально разработан для автоматизации задач в Excel, Access и Word. Он также может делать множество интересных вещей с электронной почтой, управлением файлами и базами данных ODBC (Open Database Connectivity).
Также есть возможность сценариев, чтобы вы могли программировать сложные операции в соответствии с вашими очень конкретными потребностями. RoboIntern умен, и трудно поверить, что приложение полностью бесплатное. Технически он основан на пожертвованиях пользователей, но на момент написания страница пожертвований еще не функционировала.
Что ты можешь сделать? Прежде всего, RoboIntern может выполнять поиск в основных приложениях Microsoft Office и выполнять операции. Одна вещь, которая понравится многим, — это возможность автоматически импортировать данные из Excel в Access. Другие функции, которые нам действительно нравятся, позволяют вам составлять электронные письма и автоматически генерировать отчет о проделанной работе.
У RoboIntern большой потенциал, но показать все это здесь негде. К счастью, вы можете узнать это бесплатно!
5. Системный планировщик
System Scheduler — еще одна бесплатная альтернатива планировщику задач Windows, которая может быть самой простой альтернативой в этом списке. Похоже, что Splinterware запрограммировал этот апплет как более или менее альтернативу встроенной версии Windows. Вы также можете без проблем запустить оба варианта на одном компьютере. Системный планировщик никоим образом не зависит от планировщика задач Windows. Он все делает за счет собственных сил.
Бесплатная версия приложения включает в себя несколько интересных возможностей. Что касается личного времени, вы можете запрограммировать всплывающие напоминания, чтобы вы знали, какие мероприятия вы хотите посетить. Вы можете запускать приложения в определенное время, а затем перезапускать серию нажатий клавиш и щелчков мыши, чтобы заставить их выполнять определенные задачи. В нем также есть изящная функция «часы из окон».
По сути, когда появляется определенное окно (например, сообщение об ошибке), вы можете использовать его как средство запуска. Возможно, когда FTP-соединение отключено, вы можете проигнорировать всплывающее окно и подключиться повторно. Таким образом, вы можете быть уверены, что важные процессы не завершатся сбоем, пока система фактически не отслеживается.
Существует также профессиональная версия приложения, за которую нужно будет заплатить. Однако профессиональная версия приложения System Scheduler дает большие преимущества. Особенно его способность действовать как системная служба. Это означает, что он может выполнять задачи, даже если никто не вошел в систему.
Многие расширенные функции платной версии действительно полезны и для обычных пользователей. Вы можете попробовать ознакомительную версию, а затем решить, стоят ли добавленные функции и опции запрашиваемой цены в 30 долларов. Мы думаем, что ответ положительный, но каждый пользователь должен будет решить сам.
Скачать : Системный планировщик (Бесплатная версия с опцией за 30 долларов)
Исполнение в срок!
Если вы выполняете много задач или повторяете задачи, которые все еще забываете, получение хорошего приложения-планировщика задач может улучшить ваши вычислительные возможности. Автоматизируя части вашего рабочего процесса с помощью разумного использования этих приложений, вы можете сэкономить больше времени и не пропустить важные задачи, такие как создание регулярных резервных копий.
Хотя мы считаем, что это одни из лучших альтернатив планировщикам задач Windows, не стесняйтесь давать свои собственные предложения в комментариях. Расскажите нам о Планирование приложений Чем вы пользуетесь и почему они вам нравятся!
Источник: www.dz-techs.com
Запуск PowerShell скрипта в Планировщике заданий
Системному администратору часто приходится писать разные скрипты и настраивать их запуск по расписанию в Планировщике заданий (Task Scheduler). Простой пример ниже.
Написал небольшой скрипт и сохранил по адресу:
B:scriptsweburl_status.ps1
Я хочу, чтобы этот скрипт запускался каждые 10 минут. Время работы скрипта — не более 60 секунд.
Открываю Планировщик заданий. Создаю попку, в которой будет находиться расписание, называю её IIS.
Нажимаю Create Task.
В первой вкладке General указываю:
- Name. Любое название расписания.
- Description. Любое описание, не обязательно.
- С помощью кнопки Change User or Group можно выбрать пользователя, от имени которого будет выполняться скрипт. Я выбираю локального администратора.
- Run whether user is logged on or not. Устанавливаю радиокнопку, чтобы скрипт выполнялся независимо от того, залогинен пользователь или нет. В этом случае нас попросят после сохранения расписания указать пароль пользователя.
- Run with highest privileges. Устанавливаю галку для запуска скрипта с правами администратора.
Перехож на вкладку Triggers. Здесь нужно создать триггер для расписания. New.
В настройках триггера:
- Begin the task. Выбираю On a schedule. Запуск по расписанию.
- Daily. Запускать каждый день.
- Recur every 1 days. Каждый день без пропусков.
- Repeat task every 10 minutes. Запускать каждые 10 минут for a duration 1 day. Весь день.
- Stop tasks if it runs longer than 5 minutes. Останавливать задачу, если она выполняется более 5 минут.
- Enabled. Включить расписание.
Перехожу на вкладку Actions. Здесь нужно указать скрипт для выполнения. New.
- Actions: Start a program. Выполнить программу.
- Program/script. Указываю powershell.exe
- Add arguments (optional). Здесь нужно указать параметры для запуска скрипта. Я пишу: -file «B:scriptsweburl_status.ps1». Если нужно передать в скрипт аргументы, то можно написать -command «.
Путь к выполняемому скрипту указан.
Перехожу на вкладку Conditions. Здесь определяются условия для запуска. Устанавливаю одну галку, просто на всякий случай:
- Wake the computer to run this task. Разбудить компьютер для выполнения скрипта.
Перехожу на вкладку Settings. Здесь есть ряд полезных настроек. Ставлю галки:
- Allow task to be run on demand. Разрешить запуск скрипта по запросу.
- If the running task does not end when requested, force it to stop. Если задача не завершилась к моменту повторного запуска, то остановить её.
- Do not start a new instance. Не запускать второй экземпляр.
Указываю пароль локального администратора. OK.
Теперь скрипт будет запускаться по расписанию. В разделе History можно отслеживать результат выполнения.
Источник: internet-lab.ru