Установите файл .sh как cronjob [duplicate]

Связанный .lib-файл связан с .dll

У меня была такая же проблема. Скажем, у меня есть проекты MyProject и TestProject. Я эффективно связал файл lib для MyProject с TestProject. Однако этот файл lib был создан, так как была построена DLL для MyProject. Кроме того, я не содержал исходный код для всех методов в MyProject, но только доступ к точкам входа DLL.

Чтобы решить проблему, я построил MyProject как LIB и связал TestProject с этим .lib-файлом (скопируйте вложенный файл .lib в папку TestProject). Затем я смогу снова создать MyProject как DLL. Он компилируется, поскольку lib, с которым связан TestProject, содержит код для всех методов в классах MyProject.

15
задан tomtomssi 3 November 2013 в 19:10
поделиться

5 ответов

В каком каталоге находится файл .txt? cron запускает задания в вашем домашнем каталоге, поэтому, если ваш скрипт cd не находится где-то еще, вот где он будет искать / create file.txt.

EDIT: Когда вы ссылаетесь на файл без указания его полный путь (например, file.txt, в отличие от полного пути /home/myUser/scripts/file.txt) в оболочке, предполагается, что вы ссылаетесь на файл в текущем рабочем каталоге. Когда вы запускаете скрипт (будь то интерактивно или через crontab), рабочий каталог сценария не имеет ничего общего с расположением самого скрипта; вместо этого он унаследован от того, что запускает скрипт.

Таким образом, если вы cd (смените рабочий каталог) на каталог, в котором находится скрипт, а затем запустите его, file.txt будет ссылаться на файл в тот же каталог, что и скрипт. Но если вы не cd, сначала file.txt будет ссылаться на файл в любом каталоге, в котором вы оказались, когда вы запускали скрипт. Например, если ваш домашний каталог / home / myUser, и вы открываете новую оболочку и сразу запускаете скрипт (как scripts/test.sh или /home/myUser/scripts/test.sh; ./test.sh не будет работать), он коснется файла / home / myUser / file.txt, потому что / home / myUser - это ваш текущий рабочий каталог (и, следовательно, скрипт).

Когда вы запускаете скрипт из cron, он делает практически то же самое: он запускается это с рабочим каталогом, установленным в ваш домашний каталог. Таким образом, все ссылки на файлы в скрипте берутся относительно вашего домашнего каталога, если только сценарий cd не находится где-то в другом месте или не указывает абсолютный путь к файлу.

8
ответ дан Gordon Davisson 26 August 2018 в 04:24
поделиться

Укажите полный путь и предоставите правильное разрешение для файла сценария. Я попытался выполнить файл сценария для запуска через cron:

#!/bin/bash
/bin/mkdir /scratch/ofsaaweb/CHEF_FICHOME/ficdb/bin/crondir

И команда crontab

* * * * * /bin/bash /scratch/ofsaaweb/CHEF_FICHOME/ficdb/bin/test.sh

Это сработало для меня.

0
ответ дан Kerem Can 26 August 2018 в 04:24
поделиться

Попробуйте

 # cat test.sh
 #!/bin/bash
 /bin/touch file.txt

cron as:

 * * * * * /bin/sh /home/myUser/scripts/test.sh

И вы можете подтвердить это:

 # tailf /var/log/cron
2
ответ дан Ranjithkumar T 26 August 2018 в 04:24
поделиться

Самый простой способ - использовать GUI:

Для использования Gnome gnome-schedule (universe)

sudo apt-get install gnome-schedule 

Для использования KDE kde-config-cron

It should be pre installed on Kubuntu

Но если вы используете безголовый Linux или не хотите использовать GUI, вы можете использовать:

crontab -e

Если вы введете его в терминал, вы получите таблицу. Теперь вы должны вставить свои cronjob. Отформатируйте задание следующим образом:

*     *     *     *     *  YOURCOMMAND
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- Day in Week (0 to 7) (Sunday is 0 and 7)
|     |     |     +------- Month (1 to 12)
|     |     +--------- Day in Month (1 to 31)
|     +----------- Hour (0 to 23)
+------------- Minute (0 to 59)

Также есть короткие шорты (если вы не хотите *):

@reboot --> only once at startup
@daily ---> once a day
@midnight --> once a day at midnight
@hourly --> once a hour
@weekly --> once a week
@monthly --> once a month
@annually --> once a year
@yearly --> once a year

Если вы хотите использовать шорты как cron (потому что они не работают или так):

@daily --> 0 0 * * *
@midnight --> 0 0 * * *
@hourly --> 0 * * * *
@weekly --> 0 0 * * 0
@monthly --> 0 0 1 * *
@annually --> 0 0 1 1 *
@yearly --> 0 0 1 1 *
8
ответ дан sn0w 26 August 2018 в 04:24
поделиться

Он должен работать правильно и в cron. Пожалуйста, проверьте ниже.

1- Вы редактируете правильный файл для установки cron.

2- Вы дали правильное разрешение (разрешение на выполнение) для скрипта, означающего, что ваш скрипт является исполняемым.

0
ответ дан virus 26 August 2018 в 04:24
поделиться