bash врСмя выполнСния скрипта

Bash-скрипт для расчСта Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ моя Π»ΠΎΠ³ΠΈΠΊΠ° Π²Π΅Ρ€Π½Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ я Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ распСчаткой:

» для выполнСния этой Π·Π°Π΄Π°Ρ‡ΠΈ трСбуСтся нСсколько сСкунд. «

Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ с ΠΌΠΎΠ΅ΠΉ Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ?

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ bash Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΌΠ½Π΅ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² bash Π±Ρ‹Π» ΠΌΠ΅Ρ‚ΠΎΠ΄ «string to integer».

8 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ ΠΎΡ‡Π΅Π½ΡŒ чистым ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ «$SECONDS»

Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘Π°ΡˆΠ° time ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово здСсь с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строкой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ строка Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ, ΠΊΠ°ΠΊ информация ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Ρ‚Ρ€ΡƒΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² с прСфиксом time Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ. The’’ Π²Π²ΠΎΠ΄ΠΈΡ‚ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎΡ‚ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΈΡ… описания; подтяТки ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ части.

Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт l ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Ρ„ΠΎΡ€ΠΌΡ‹ MMmSS.Π€Π€Π‘. Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ p опрСдСляСт, являСтся Π»ΠΈ фракция Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°.

Ссли эта пСрСмСнная Π½Π΅ Π·Π°Π΄Π°Π½Π°, Bash дСйствуСт Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½Π° ΠΈΠΌΠ΅Π»Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ null, отобраТаСтся информация ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠšΠΎΠ½Π΅Ρ‡Π½Π°Ρ новая строка добавляСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ строки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ врСмя с ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ сСкунд:

см. страницу Time man:

ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ bash Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явный ΠΏΡƒΡ‚ΡŒ для запуска ΠΊΠΎΠΌΠ°Π½Π΄Π° внСшнСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Π½Π΅ встроСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. По систСмС Π³Π΄Π΅ врСмя установлСно Π² /usr/ bin, ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ / usr / bin / time wc /ΠΈ Ρ‚. Π΄./хосты

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Sleep Π² скриптах Bash Π² Linux

Π“Π»Π°Π²Π½ΠΎΠ΅ мСню Β» ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Linux Β» ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Sleep Π² скриптах Bash Π² Linux

bash врСмя выполнСния скрипта. Ispolzovanie komandy Sleep v skriptah Bash v Linux. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-Ispolzovanie komandy Sleep v skriptah Bash v Linux. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ispolzovanie komandy Sleep v skriptah Bash v Linux. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Команда sleep Π² Linux – ΠΎΠ΄Π½Π° ΠΈΠ· самых простых ΠΊΠΎΠΌΠ°Π½Π΄. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· названия, Π΅Π³ΠΎ СдинствСнная функция – ΡΠΏΠ°Ρ‚ΡŒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΎΠ½ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ врСмя.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ sleep с x, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· x сСкунд.

Команда Sleep ΠΈΠΌΠ΅Π΅Ρ‚ простой синтаксис:

Π—Π΄Π΅ΡΡŒ суффикс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ:

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sleep.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Sleep Π² Bash

Π₯отя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ нСпосрСдствСнно Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, ΠΊΠΎΠΌΠ°Π½Π΄Π° sleep ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ввСдСния Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария bash. ΠœΡ‹ собираСмся ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ использованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sleep Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв bash.

Команда sleep Π±Π΅Π· суффикса считаСтся Π² сСкундах

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ваш bash-скрипт Π½Π° 5 сСкунд, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ sleep ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ скрипта bash это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Если Π²Ρ‹ запуститС Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ time, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ скрипт bash Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» (Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ) Π±ΠΎΠ»Π΅Π΅ 5 сСкунд.

Команда Sleep с суффиксом m, h ΠΈΠ»ΠΈ d

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ врСмя sleep Π² ΠΌΠΈΠ½ΡƒΡ‚Π°Ρ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π­Ρ‚ΠΎ приостановит скрипт/ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ сцСнарий Π½Π° нСсколько часов, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ h:

Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ скрипт Π½Π° нСсколько Π΄Π½Π΅ΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ суффикса d:

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π½Ρ‹Π΅ Π΄Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π½ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ.

Команда sleep с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ сСкунд, ΠΌΠΈΠ½ΡƒΡ‚, часов ΠΈ дня

Π’Ρ‹ Π½Π΅ обязаны ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ суффикс Π·Π° Ρ€Π°Π·. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ суффикса, ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ sleep являСтся суммой всСх суффиксов.

НапримСр, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π­Ρ‚ΠΎ заставит скрипт ΠΆΠ΄Π°Ρ‚ΡŒ 1 час 10 ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ 5 сСкунд. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ суффикс s здСсь ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ нСобязатСлСн.

Бонусный совСт: ΡΠΏΠ°Ρ‚ΡŒ мСньшС сСкунды

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наимСньшая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ sleep – сСкунда. Но Ρ‡Ρ‚ΠΎ Ссли ваш bash-скрипт Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΏΠ°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ миллисСкунд?

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (дСсятичныС Ρ‚ΠΎΡ‡ΠΊΠΈ) с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ sleep.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ввСсти ΠΏΠ°ΡƒΠ·Ρƒ Π² 5 миллисСкунд, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дСсятичныС Ρ‚ΠΎΡ‡ΠΊΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ суффиксами.

Π‘ΡƒΠ΄Π΅Ρ‚ Π²Π²Π΅Π΄Π΅Π½Π° Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π² 1 час 37 ΠΌΠΈΠ½ΡƒΡ‚ ΠΈ 30 сСкунд.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ прСдлоТСния, поТалуйста, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ.

Если Π²Ρ‹ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ, поТалуйста, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Enter.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ВывСсти врСмя выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π² Linux

Π˜Π·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ врСмя выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Linux Π½Π΅ просто, Π° ΠΎΡ‡Π΅Π½ΡŒ просто. Но это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ time Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Команда time

Π’Ρ‹Π·ΠΎΠ² консольной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ time

Если стоит Π·Π°Π΄Π°Ρ‡Π° ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ врСмя выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Linux, Ρ‚ΠΎ всС Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° time.

Бинтаксис Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ простой:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° β€” замСряСм врСмя выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sleep 1:

Π”Ρ€ΡƒΠ³ΠΎΠΉ time

Π’Π΅ΠΏΠ΅Ρ€ΡŒ разбСрСмся, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΌΡ‹ выполняСм:

Π’ΠΎΡ‚ ΠΎΠ½ΠΎ Ρ‡Ρ‚ΠΎ! ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, time, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈ β€” это внутрСнняя ΠΊΠΎΠΌΠ°Π½Π΄Π° Shell.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

А это ΡƒΠΆΠ΅ внСшняя ΠΊΠΎΠΌΠ°Π½Π΄Π°, располоТСнная ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ: /usr/bin.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π΅:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° внСшнСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ time

ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° статистики Π² Ρ„Π°ΠΉΠ», вмСсто Π²Ρ‹Π²ΠΎΠ΄Π° Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ ошибок. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСзаписан.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ для сбора статистики ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом ΠΈΠ»ΠΈ выводящих ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΏΠΎΡ‚ΠΎΠΊ ошибок.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ шаблон FORMAT для Π²Ρ‹Π²ΠΎΠ΄Π° статистики.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ:

%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

ОписаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… шаблонов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ стандарту POSIX 1003.2:
real %e
user %U
sys %S

Π’Π½Π΅ΡˆΠ½ΠΈΠΉ time ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π§Ρ‚ΠΎΠ±Ρ‹ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом:

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π°ΠΏΡƒΡΠΊΠ°Π»Π°ΡΡŒ внСшняя ΠΊΠΎΠΌΠ°Π½Π΄Π° time достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Π­Ρ‚ΠΎ установит внСшнюю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ time ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти измСнСния для всСх ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сСссий, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ alias Π² Ρ„Π°ΠΉΠ»

/.bashrc (измСнСния для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) ΠΈΠ»ΠΈ /etc/bash.bashrc (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ систСмы).

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π² скриптах

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ врСмя выполнСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ участка ΠΊΠΎΠ΄Π° Π² скриптС bash.

Для этого Π² исслСдуСмый скрипт Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

How to get execution time of a script effectively?

I would like to display the completion time of a script.

18 Answers 18

Just use time when you call the script:

bash врСмя выполнСния скрипта. 8mGqv. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-8mGqv. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 8mGqv. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

If time isn’t an option,

or, if you need sub-second precision and have bc installed,

Just call times without arguments upon exiting your script.

To preserve the exit status of your script, you can make it:

Or you can also add a trap on EXIT :

That way, times will be called whenever the shell exits and the exit status will be preserved.

bash врСмя выполнСния скрипта. BkKfT. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-BkKfT. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° BkKfT. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

I’m a bit late to the bandwagon, but wanted to post my solution (for sub-second precision) in case others happen to stumble upon this thread through searching. The output is in format of days, hours, minutes, and finally seconds:

Hope someone out there finds this useful!

My method for bash :

bash врСмя выполнСния скрипта. hMSLZ. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-hMSLZ. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° hMSLZ. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Personally, I like to wrap all my script code in some «main» function like so:

Notice how easy is to use the time command in this scenario. Obviously you’re not measuring the precise time including script parse time, but I find it accurate enough in most situations.

Yes, this calls Python, but if you can live with that then this is quite a nice, terse solution.

This question is quite old but in trying to find my favorite way of doing it this thread came up high. and I’m surprised no one mentioned it:

‘perf’ is a performance analyzing tool included in the kernel under ‘tools/perf’ and often available to install as a separate package (‘perf’ in CentOS and ‘linux-tools’ on Debian/Ubuntu). The Linux Kernal perf Wiki has much more information about it.

Running ‘perf stat’ gives quite a bit of details including average execution time right at the end:

bash врСмя выполнСния скрипта. s70JW. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-s70JW. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° s70JW. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

A small shell function that can be added before commands to measure their time:

Then use it in your script, or on your command line like so:

1.020 sec, as shown here:

What a beautiful thing. You can put any command after it, and it outputs the result in a nice, human-readable form. I really like to use it for timing builds. Ex:

. or for git operations which can potentially be really long, so I can develop realistic mental expectations:

Note that dt_min gets rounded from 0.01666666666. (1 second = that many minutes) to 0.017 in this case since I’m using the printf function to round. The sleep 1; part below is where you’d call your script to run and time, but I’m just sleeping for 1 second instead for the sake of this demo.

Related:

Using only bash it is also possible to measure and calculate the time duration for a portion of the shell script (or the elapsed time for the entire script):

you can now either just print the difference:

if you only need incremental duration do:

You can also store the duration in a variable:

bash врСмя выполнСния скрипта. ppP5k. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-ppP5k. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ppP5k. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Use bash time builtin?

bash врСмя выполнСния скрипта. TmT6X. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-TmT6X. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° TmT6X. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

But if you need an efficient solution to get the times with millisecond precision and need them into variables such that the original output remains undisturbed you may combine process substitution with some redirections around time which is much faster than calling external programs and allows redirections around the timing wrapper script as on the original command/script.

Longer variant that keeps original stdout and stderr separate of each other:

You can even fake a floating point addition in bash without calling bc which would be much slower:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Bash-скрипты, Ρ‡Π°ΡΡ‚ΡŒ 5: сигналы, Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сцСнариями

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΉ Ρ€Π°Π· ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°, Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ошибок Π² bash-скриптах, ΠΎ дСскрипторах Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². БСйчас Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ΡƒΠΆΠ΅ достаточно ΠΌΠ½ΠΎΠ³ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ своё. На Π΄Π°Π½Π½ΠΎΠΌ этапС освоСния bash Ρƒ вас Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ вопросы ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ скриптами, ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… запуск.

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Π”ΠΎ сих ΠΏΠΎΡ€ ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π° скриптов Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π»ΠΈ Enter, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡƒ запуску ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½ΠΎ это β€” Π½Π΅ СдинствСнный способ Π²Ρ‹Π·ΠΎΠ²Π° сцСнариСв. БСгодня ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ ΠΊΠ°ΠΊ скрипт ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с сигналами Linux, ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°Ρ… ΠΊ запуску скриптов ΠΈ ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΈΠΌΠΈ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π‘ΠΈΠ³Π½Π°Π»Ρ‹ Linux

Π’ Linux сущСствуСт Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Ρ‘Ρ… дСсятков сигналов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ систСма ΠΈΠ»ΠΈ прилоТСния. Π’ΠΎΡ‚ список Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ навСрняка пригодятся ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Код сигналаНазваниСОписаниС
1SIGHUPΠ—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°
2SIGINTΠ‘ΠΈΠ³Π½Π°Π» остановки процСсса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (CTRL + C)
3SIGQUITΠ‘ΠΈΠ³Π½Π°Π» остановки процСсса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (CTRL + \) с Π΄Π°ΠΌΠΏΠΎΠΌ памяти
9SIGKILLБСзусловноС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ процСсса
15SIGTERMΠ‘ΠΈΠ³Π½Π°Π» запроса Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса
17SIGSTOPΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ приостановка выполнСния процСсса, Π½ΠΎ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹
18SIGTSTPΠŸΡ€ΠΈΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° процСсса с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (CTRL + Z), Π½ΠΎ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹
19SIGCONTΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ выполнСния Ρ€Π°Π½Π΅Π΅ остановлСнного процСсса

Если ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° bash ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сигнал SIGHUP ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», ΠΎΠ½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ ΠΎΠ½Π° отправляСт сигнал SIGHUP всСм Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ Π² Π½Π΅ΠΉ процСссам, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ скрипты.

Bash-скрипты Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ эти сигналы, Π½ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ скрипта ΠΊ послСдствиям, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ сигналами.

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сигналов скриптам

ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° bash позволяСт Π²Π°ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ скриптам сигналы, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ комбинациями клавиш Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅. Π­Ρ‚ΠΎ оказываСтся ΠΎΡ‡Π΅Π½ΡŒ кстати Ссли Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ скрипт ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСсса

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ клавиш CTRL + C Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ сигнал SIGINT ΠΈ отправляСт Π΅Π³ΠΎ всСм процСссам, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌΡΡ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСсса с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

ВрСмСнная остановка процСсса

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Число Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках β€” это Π½ΠΎΠΌΠ΅Ρ€ задания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ процСссу. ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° рассматриваСт процСссы, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π½Π΅ΠΉ, ΠΊΠ°ΠΊ задания с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ. ΠŸΠ΅Ρ€Π²ΠΎΠΌΡƒ процСссу назначаСтся Π½ΠΎΠΌΠ΅Ρ€ 1, Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ β€” 2, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Если Π²Ρ‹ приостановитС Π·Π°Π΄Π°Π½ΠΈΠ΅, привязанноС ΠΊ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Π½Π΅Ρ‘, bash выдаст ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ приостановлСнныС задания ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Выглядит Π΅Ρ‘ Π²Ρ‹Π·ΠΎΠ² Ρ‚Π°ΠΊ:

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ сигналов

Команда trap позволяСт скрипту Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сигналы, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° выполняСтся ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ Π±Π΅Π· Π΅Π³ΠΎ участия.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ trap задаётся ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, ΠΈ список сигналов, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это всСго ΠΎΠ΄ΠΈΠ½ сигнал:

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ сигнала Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· скрипта

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ сигнал Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· скрипта ΠΌΠΎΠΆΠ½ΠΎ, использовав ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ trap имя сигнала EXIT :

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

ΠŸΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ сигнала Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· скрипта

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… сигналов ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π°

Для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… скриптом сигналов ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ trap с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° сигналов

ПослС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сигналы Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Π½ΠΎΠ²ΠΎΠΌΡƒ.

И Π½Π°ΠΆΠΌΡ‘ΠΌ CTRL + C Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Π‘ΠΈΠ³Π½Π°Π», ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π°

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅

Иногда bash-скриптам трСбуСтся Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для выполнСния Π½Π΅ΠΊΠΎΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΈ этом Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π½Π΅ доТидаясь Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ скрипта. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ слоТно.

Запустим Π΅Π³ΠΎ, ΡƒΠΊΠ°Π·Π°Π² послС ΠΈΠΌΠ΅Π½ΠΈ символ ампСрсанда ( & ):

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΊΠ°ΠΊ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ процСсс.

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Запуск скрипта Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ процСссС, Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» вывСдСтся Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π° ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± этом.

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅, Ссли Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, скрипт, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² Ρ„ΠΎΠ½Π΅, Ρ‚Π°ΠΊ ΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π§Ρ‚ΠΎ Ссли Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ послС закрытия Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°?

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скриптов, Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ эту ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΡƒ ΠΏΡ€ΠΈ запускС нашСго скрипта:

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π·Π°Π΄Π°Π½ΠΈΠΉ

Команда jobs позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ задания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅. НапишСм Ρ‚Π°ΠΊΠΎΠΉ скрипт:

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Запуск ΠΈ приостановка скрипта

Запустим Ρ‚ΠΎΡ‚ ΠΆΠ΅ скрипт Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΡ€ΠΈ этом ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄ скрипта Π² Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ» Π½Π° экранС:

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСдСний ΠΎ скриптах

ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ приостановлСнных Π·Π°Π΄Π°Π½ΠΈΠΉ

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ скрипт выполняСтся Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Если Ρƒ вас имССтся нСсколько приостановлСнных Π·Π°Π΄Π°Π½ΠΈΠΉ, для пСрСзапуска ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ задания ΠΊΠΎΠΌΠ°Π½Π΄Π΅ bg ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€.

Для пСрСзапуска задания Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ fg :

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ запуска скриптов

Π’Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ at выглядит Ρ‚Π°ΠΊ:

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° распознаёт мноТСство Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² указания Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ с использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ at

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… выполнСния, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ atq :

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Бписок Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… выполнСния

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… выполнСния

bash врСмя выполнСния скрипта. image loader. bash врСмя выполнСния скрипта Ρ„ΠΎΡ‚ΠΎ. bash врСмя выполнСния скрипта-image loader. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bash врСмя выполнСния скрипта. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° image loader. Π― ΠΏΠΈΡˆΡƒ сцСнарий Π² bash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ врСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для выполнСния ΠΌΠΎΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, рассмотрим:

Запуск скриптов ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ запуска скриптов с использованиСм ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ at способно ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Тизнь Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ситуациях. Но ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ, Ссли Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт выполнялся Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ, ΠΈΠ»ΠΈ Ρ€Π°Π· Π² нСдСлю, ΠΈΠ»ΠΈ Ρ€Π°Π· Π² мСсяц?

Crontab выполняСтся Π² Ρ„ΠΎΠ½Π΅ ΠΈ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… cron-Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, запускаСт задания ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ.

ΠŸΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ запуска скрипта ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ crontab ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½ΠΈΠ΅, Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

НапримСр, Ссли Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΊΠΈΠΉ скрипт с ΠΈΠΌΠ΅Π½Π΅ΠΌ command выполнялся Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² 10:30, этому Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ такая запись Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π°Π΄Π°Π½ΠΈΠΉ:

Π—Π΄Π΅ΡΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ Β« * Β», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для ΠΏΠΎΠ»Π΅ΠΉ, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΡ… дСнь мСсяца, мСсяц ΠΈ дСнь Π½Π΅Π΄Π΅Π»ΠΈ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ cron Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мСсяца Π² 10:30.

Если, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°Π΄ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт запускался Π² 4:30PM ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ понСдСльник, понадобится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π·Π°Π΄Π°Π½ΠΈΠΉ Ρ‚Π°ΠΊΡƒΡŽ запись:

НумСрация Π΄Π½Π΅ΠΉ Π½Π΅Π΄Π΅Π»ΠΈ начинаСтся с 0, 0 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅, 6 β€” субботу. Π’ΠΎΡ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π—Π΄Π΅ΡΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² 12 часов дня Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ дСнь ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мСсяца.

Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ формирования расписания:

Благодаря этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ скрипт Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² 10:30. Если Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Ρ‘Ρ‚Π΅ΡΡŒ с ошибкой Β«Resource temporarily unavailableΒ», Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π½ΠΈΠΆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ root-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:

ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСриодичСский запуск скриптов с использованиСм cron ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΎΡ‰Π΅, воспользовавшись нСсколькими ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ дирСкториями:

Если ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» скрипта Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½ΠΈΡ…, это ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚, соотвСтствСнно, ΠΊ Π΅Π³ΠΎ СТСчасному, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΌΡƒ, Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ СТСмСсячному запуску.

Запуск скриптов ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π² систСму ΠΈ ΠΏΡ€ΠΈ запускС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запуск скриптов ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ события, Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² систСму ΠΈΠ»ΠΈ запуск ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. Π’ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ситуациях. НапримСр, это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:

Π˜Ρ‚ΠΎΠ³ΠΈ

БСгодня ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ вопросы, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ управлСния ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ сцСнариСв, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты Π² Ρ„ΠΎΠ½Π΅, ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎ функциях Π² bash-скриптах ΠΈ ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! А Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ срСдствами планирования запуска сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ? Если Π΄Π° β€” расскаТитС поТалуйста ΠΎ Π½ΠΈΡ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *