Создаём комадный файл в Windows 10 – сборка и запуск

Cron (Command Run ON) — утилита для автоматического запуска программ и скриптов на сервере в определённое время. Cron очень полезен для рутинных задач, таких как сканирование системы, ежедневное резервное копирование и т.д. Cron автоматически выполняет задания в бэкенде в указанное время. Управлять cron нужно с помощью crontab. В этой статье вы увидите 18 полезных примеров команды crontab.

Параметры запуска 1С 3

В первую очередь необходимо рассмотреть параметры, позволяющие запустить конкретную информационную базу 1С в нужном режиме. Бывают ситуации, когда пользователь случайно заходит в тестовую базу и работает в ней. Чаще всего это заканчивается требованиями перенести все результаты его труда в актуальную ИБ. Чтобы не создавать себе проблем и не тратить время сотрудников, стоит заранее проконтролировать, чтобы пользователи заходили в правильную базу.

Сделать это можно при помощи следующих параметров запуска 1С:

  • Enterprise – ПО открывается в режиме Предприятия;
  • Designer – запуск конфигуратора.

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

  • /F «ПутьКФайловойБазе» – используется для файловых баз, вместо ПутьКФайловойБазе вставьте путь к каталогу, где расположена ИБ, а не к файлу 1CD;
  • /S «ИмяСервера/ИмяИБ» – параметр для клиент-серверных версий 1С;
  • /IBNAME «ИмяБазы» – запуск одной из баз из перечня ИБ. Поиск осуществляется по имени, причем, если в нем содержаться кавычки, то их необходимо экранировать по правилам 1С. Учтите, если в списке не будет такой базы, то 1С предложит выбрать нужную из перечня. Если будет две и более с одинаковым именем – платформа выдаст ошибку;
  • /IBConnectionString – задает соединение с ИБ аналогично возвращаемому значению встроенной функции СтрокаСоединенияИнформационнойБазы(). Результат может быть изменен последующими параметрами командной строки 1С, но для этого они должны быть описаны позднее. Учтите, что придется заключать результирующую строку в кавычки и экранировать присутствующие, если придется использовать строку соединения в роли параметра;
  • /@ «ИмяФайла» – запуск 1С с параметрами, указанными в конкретном файле, путь к которому нужно указать вместо ИмяФайла.

Если у вас в компании не один пользователь, то наверняка используется аутентификация 1С:Предприятия. Это означает, что каждому сотруднику, работающему в 1С, присвоен логин и пароль. Но иногда администраторы встречаются с пользователями, которые не в состоянии запомнить эти два значения. В таких случаях нам помогут следующие параметры командной строки 1С 8.3:

  • /N «ИмяПользователя» – задает логин, под которым будет запущена 1С. Лучше задавать вместе с путем к базе, так как иногда пользователи могут отличаться;
  • /P «Пароль» – сообщит 1С пароль для пользователя, под которым запускается 1С. Если пользователь должен заходить без пароля или нужно, чтобы его вводили, то данный параметр можно не задавать.
Читайте также:  Как посмотреть пароль через код элемента

Рис.4 Параметры запуска 1С 8.3

Как запустить командный файл в Windows 10

Запуск пакетного файла по требованию

Если вам нужно запустить скрипт по требованию, вы можете использовать проводник или командную строку.

Проводник

Чтобы запустить пакетный файл с помощью проводника, выполните следующие действия:

  1. Откройте проводник.
  2. Найдите папку со сценарием.
  3. Дважды щелкните командный файл, чтобы запустить его.
  4. (Необязательно) Если вы выполняете команду, требующую прав администратора, вам нужно запустить сценарий от имени администратора, щелкнув правой кнопкой мыши пакетный файл и выбрав опцию Запуск от имени администратора.

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

Командная строка

Чтобы запустить командный файл из командной строки, выполните следующие действия:

  1. Откройте командную строку от имени администратора.
  2. Введите путь и название командного файла и нажмите Enter:

    C:\PATH\TO\FOLDER\

    Например, следующая команда запускает пакетный файл, расположенный в пользовательской папке «batch» внутри папки «Downloads»:

    C:\Users\user\Documents\scripts\first_

После того, как вы выполните эти шаги, выходные данные будут отображаться на экране, даже если скрипт содержит команду «PAUSE».

Запуск пакетного файла по расписанию

Чтобы запланировать запуск пакетного файла в Windows 10, вы можете использовать планировщик задач, выполнив следующие действия:

  1. Откройте Пуск.
  2. Введите планировщик заданий и щелкните по верхнему результату, чтобы открыть приложение.
  3. Щелкните правой кнопкой мыши ветку «Библиотека планировщика заданий» и выберите опцию Создать папку….
  4. Введите имя для папки – например, MyScripts.

    Необязательно создавать папку, но рекомендуется организовать ваши задачи.

  5. Нажмите кнопку ОК.
  6. Щелкните правой кнопкой мыши папку MyScripts.
  7. Выберите опцию Создать простую задачу.
  8. В поле «Имя» введите краткое описательное имя для задачи – например, SystemInfoBatch.
  9. (Необязательно) В поле «Описание» создайте описание для задачи.
  10. Нажмите кнопку Далее.
  11. Выберите опцию Ежемесячно.

    В Windows 10 планировщик задач позволяет выбрать несколько триггеров, в том числе на определенную дату, во время запуска или при входе любого пользователя в устройство. В зависимости от ваших требований вам нужно будет настроить дополнительные параметры. В этом случае мы выбираем вариант запуска задачи каждый месяц.

  12. Нажмите кнопку Далее.
  13. Используя настройку «Начать», укажите день и время запуска задачи.
  14. Используйте выпадающее меню «Месяцы», чтобы выбрать месяцы года, в которые вы хотите выполнить задачу.
  15. Используйте выпадающее меню «Дни» или «В:», чтобы указать дни, в которые будет выполняться задание.
  16. Нажмите кнопку Далее.
  17. Выберите опцию Запустить программу, чтобы запустить пакетный файл.
  18. В поле «Программа/скрипт» укажите путь к пакетному файлу.
  19. Нажмите кнопку Готово.

После выполнения этих действий задача сохраниться и запустит пакетный файл по указанному вами расписанию.

Запуск пакетных файлов при запуске

Чтобы запустить скрипт при запуске, используйте следующие простые шаги:

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

Мы ориентируем это руководство на Windows 10, но возможность использовать пакетные файлы существует давно, а это означает, что вы можете обратиться к этим инструкциям, если вы всё ещё используете более старую версию, включая Windows 8.1 или Windows 7.

ipconfig /flushdns: Очистить-сбросить кэш DNS

Если вы изменили DNS-сервер в настройках сети, то данное действие не сразу вступит в силу. Windows использует кеш, в котором хранятся полученные ответы DNS, это экономит время при повторном доступе к тем же сетевым ресурсам в будущем. Чтобы Windows получала адреса от новых DNS-серверов введите команду «ipconfig /flushdns» после изменения вашего DNS-сервера.

При постоянном серфинге в интернете, ваш компьютер автоматически кэширует IP-адреса и прочие необходимые данные службы доменных имен. Очистка кэша DNS помогает обновить эти данные. Устаревшие кэшированные данные могут, со временем, вызывать проблемы с соединением.

Как решается

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

Дальнейшее гугление методом нехитрых словесных вариаций выдало мневариант использования утилиты rtcwake. Как понятно из названия это как раз ОНО. Собственно, сама команда имеет нехитрый формат, который в большинстве случаев будет сведен к подобному

#rtcwake -m mem -s 60 // или #rtcwake -m mem -t [unix-timestamp]

Да, команда должна выполняться от root’а, о чем говорит шарп в начале строки.

Ключик -m указывает на тип засыпания системы (так-то в мане всё описано, но вдруг тебя в терминале забанили? А зачем тебе тогда команды для теминала?):

  • standby (S1) — режим используется по умолчанию, минимальное энергопотребление быстрый отбой и подъем
  • freeze — Процессы заморожены, все устройства приостановлены и процессоры работают на холостом ходу, Говорят потребляет меньше энергии чем mem, но появилось с в ядре с версии 3.9
  • mem (S3) — Питание остается только на ОЗУ и инфа на ОЗУ тоже храниться;
  • disk (S4) — Всё ОЗУ выгружается на диск (думаю с SSD практически такой же быстрый вариант как и mem);
  • off (S5) — Аналогично вызову команды shutdown, и смысл?);
  • on — без отключения, используется для отладки.

Очевидно что совсем-совсем выключаться он, конечно, умеет, вот только чтобы проснуться потом надо чтобы где-то было питание, что логично. Он уходит к гибернацию с сохранением некоторых функций, например, пробуждения =)

Про ключики -s и -t, первый указывает количество секунд, через которое система проснется, а вторая указывает временну́ю метку в формате количества секунд с начала эпохи unix. Если надо разбудить систему через 1 час, то используем вариант 1, если надо разбудить в 17:30:23 в среду через неделю, а в калькулятор вы не умеете, то используем второй вариант.

В общем, имеем функцию, которая умеет выключать систему и включать её, мне важнее было чтобы оно включалось =) Теперь идем в наш любимый крон, в режиме суперадминистратора или рута и там добавляем вот такие командочки:

# С понеделькиа по четверг 0 18 * * 1-4 rtcwake -m mem -t $(date -d 'tomorrow 8:30:00' '+%s') # А в пятницу спим до понедельника 0 18 * * 5 rtcwake -m mem -t $(date -d 'next Monday 8:30:00' '+%s')

И собственно всё. Пояснения тут излишни.

Конечно, если включить сервер руками и выключить руками, то, скорее всего, автоматического подъема не произойдет. И в этом случае пробуждение по сети спасет ситуацию. Но если же он будет жить своей самостоятельной взрослой жизнью, и мы не будем лезть к нему со своими советами, то все должно быть хорошо.

Из приколов, видел где-то реализацию, когда комп использовался в качестве будильника: автоматическое включение и запуск аудио плеера. Тоже вариант использования. Если подумать, можно придумать ещё какие-нибудь нетривиальные способы выстрелить себе в ногу через линукс.

Не всегда надо выключать систему иногда её нужно перезагружать по крону. Видишь какой я молодец и про это тоже уже написал =)

Всем рок!

P.S: О! А скоро я тебе расскажу как поднимать VPN сервер при отсутствии статического ip.

Примеры

1. Ежедневно в 2 часа ночи.

Это будет полезно для ежедневного резервного копирования.

0 2 * * * /bin/sh 2. Дважды в день

Команда ниже будет выполняться в 5 утра и 5 вечера ежедневно.

0 5,17 * * * /scripts/3. Каждую минуту

* * * * * /scripts/4. Каждое воскресенье в 17:00

Пригодится для планирования еженедельных задач.

0 17 * * sun /scripts/5. Каждые 10 минут

Если вы хотите запустить скрипт с интервалом в 10 минут, вы можете настроить его, как показано ниже. Может быть полезно для мониторинга.

*/10 * * * * /scripts/6. Определенные месяцы

Иногда может понадобиться запланировать задачи только на некоторые месяцы. Ниже приведен пример скрипта, который будет запущен в январе, мае и августе.

* * * jan,may,aug * /script/7. Определенные дни

Если вам необходимо составить расписание выполнения задачи только на некоторые дни. Приведенный ниже пример будет выполняться каждое воскресенье и пятницу в 17:00.

0 17 * * sun,fri /script/8. Первое воскресенье каждого месяца.

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

0 2 * * sun [ $(date +%d) -le 07 ] && /script/9. Каждые четыре часа.

Если вы хотите запустить скрипт с интервалом в 4 часа:

0 */4 * * * /scripts/10. Дважды в каждое воскресенье и понедельник.

Чтобы запланировать выполнение задачи дважды только в воскресенье и понедельник:

0 4,17 * * sun,mon /scripts/11. Несколько задач

Можно запланировать несколько задач в одной записи с помощью точки с запятой:

* * * * * /scripts/; /scripts/12. Ежегодно (@yearly)

@yearly равно «0 0 1 1 *». Задание будет выполняться в первую минуту каждого года. Можно отправить новогодние поздравления