Я занимаюсь разработкой Django-питон проекта и застрял в этом Джанго-кронтаб для резервного копирования файлов автоматизировать, это код:Crontab Работы не выполнить сценарий оболочки
В моем settings.py
INSTALLED_APPS = (
.
.
.
'django-crontab',
)
CRONTAB_DJANGO_MANAGE_PATH = '/home/path/to/my/project/manage.py'
CRONJOBS = [
('25 15 * * *', 'cd /home/path/to/my/project && /usr/bin/sh myscript.sh'),
]
в myscript.sh
#!/bin/sh
set -e
cd /home/path/to/my/project/
exec cp file some_dir/copy_file
Я проверить этот код на моем сервере для запуска в 15:25 часов, и это не выполняет myscript.sh
Сценарий просто копирует файл в другой каталог (для резервного копирования), и я проверил вручную, используя ./myscript.sh на сервере, скрипт работает хорошо ...
Я пытался различать методология, но ничего, кажется Works
Я беру справку из Джанго-кронтаб (https://pypi.python.org/pypi/django-crontab/0.5.1) и этот сайт (https://superuser.com/questions/81262/how-to-execute-shell-script-via-crontab) + http://github.com/kraiz/django-crontab
EDIT
Я добавить свой cronjob с помощью этой команды, а
python manage.py crontab add
Я проверил работу есть ли с помощью этой команды
python manage.py crontab show
РАБОЧИЙ ПРИМЕР
settings.py
CRONJOBS = [
# Auto Backup Database everyday at 4 am
('0 4 * * *', 'django.core.management.call_command', ['dumpdata', 'myproject'], {'indent': 4, 'use_natural_keys': True}, '> /home/mydirectory/myproject_backup/myproject_backup.json'),
]
myproject_backup.json
[
{
"pk": 1,
"model": "contenttypes.contenttype",
"fields": {
"model": "permission",
"name": "permission",
"app_label": "auth"
}
},
{
"pk": 2,
"model": "contenttypes.contenttype",
"fields": {
"model": "group",
"name": "group",
"app_label": "auth"
}
},
{
"pk": 3,
"model": "contenttypes.contenttype",
"fields": {
"model": "user",
"name": "user",
"app_label": "auth"
}
},
{
"pk": 4,
"model": "contenttypes.contenttype",
"fields": {
"model": "contenttype",
"name": "content type",
"app_label": "contenttypes"
}
},
{
"pk": 5,
"model": "contenttypes.contenttype",
"fields": {
"model": "session",
"name": "session",
"app_label": "sessions"
}
},
{
"pk": 6,
"model": "contenttypes.contenttype",
"fields": {
"model": "site",
"name": "site",
"app_label": "sites"
}
},
{
"pk": 7,
"model": "contenttypes.contenttype",
"fields": {
"model": "logentry",
"name": "log entry",
"app_label": "admin"
}
},
{
"pk": 8,
"model": "contenttypes.contenttype",
"fields": {
"model": "poll",
"name": "poll",
"app_label": "polls"
}
},
{
"pk": 9,
"model": "contenttypes.contenttype",
"fields": {
"model": "choice",
"name": "choice",
"app_label": "polls"
}
},
{
"pk": 10,
"model": "contenttypes.contenttype",
"fields": {
"model": "cronjoblog",
"name": "cron job log",
"app_label": "django_cron"
}
},
{
"pk": "1g6s3bly0gu6pn7spllerdw1n8sus08a",
"model": "sessions.session",
"fields": {
"expire_date": "2013-09-04T05:48:32Z",
"session_data": "YTg4Y2I3OWM3Nzg4NmIyOGE2NmJiZDAxYmYwMGNiYWI3Zjg5OGFmMDqAAn1xAShVEl9hdXRoX3VzZXJfYmFja2VuZHECVSlkamFuZ28uY29udHJpYi5hdXRoLmJhY2tlbmRzLk1vZGVsQmFja2VuZHEDVQ1fYXV0aF91c2VyX2lkcQSKAQF1Lg=="
}
},
{
"pk": "j7ifcyfzfhentb5tx9492fphdf20g2qp",
"model": "sessions.session",
"fields": {
"expire_date": "2013-09-11T04:54:37Z",
"session_data": "YTg4Y2I3OWM3Nzg4NmIyOGE2NmJiZDAxYmYwMGNiYWI3Zjg5OGFmMDqAAn1xAShVEl9hdXRoX3VzZXJfYmFja2VuZHECVSlkamFuZ28uY29udHJpYi5hdXRoLmJhY2tlbmRzLk1vZGVsQmFja2VuZHEDVQ1fYXV0aF91c2VyX2lkcQSKAQF1Lg=="
}
},
{
"pk": "m21on2le3kti3ezexzei1vpox57x8qgv",
"model": "sessions.session",
"fields": {
"expire_date": "2013-09-05T06:29:00Z",
"session_data": "YTg4Y2I3OWM3Nzg4NmIyOGE2NmJiZDAxYmYwMGNiYWI3Zjg5OGFmMDqAAn1xAShVEl9hdXRoX3VzZXJfYmFja2VuZHECVSlkamFuZ28uY29udHJpYi5hdXRoLmJhY2tlbmRzLk1vZGVsQmFja2VuZHEDVQ1fYXV0aF91c2VyX2lkcQSKAQF1Lg=="
}
},
{
"pk": "x16t71c19o93kukwu5mvog1g76ynv3ip",
"model": "sessions.session",
"fields": {
"expire_date": "2013-09-04T07:07:46Z",
"session_data": "YTg4Y2I3OWM3Nzg4NmIyOGE2NmJiZDAxYmYwMGNiYWI3Zjg5OGFmMDqAAn1xAShVEl9hdXRoX3VzZXJfYmFja2VuZHECVSlkamFuZ28uY29udHJpYi5hdXRoLmJhY2tlbmRzLk1vZGVsQmFja2VuZHEDVQ1fYXV0aF91c2VyX2lkcQSKAQF1Lg=="
}
},
{
"pk": 1,
"model": "sites.site",
"fields": {
"domain": "example.com",
"name": "example.com"
}
},
{
"pk": 1,
"model": "polls.poll",
"fields": {
"pub_date": "2013-08-21T05:56:00Z",
"question": "What are you doing?"
}
},
{
"pk": 2,
"model": "polls.poll",
"fields": {
"pub_date": "2013-08-21T05:58:00Z",
"question": "What's on your mind?"
}
},
.
.
]
Если кто-то может помочь, я был бы очень признателен: S
Привет, zsquare, спасибо за ваш ответ. Фактически, я использовал эту команду, чтобы выполнить другие cronjobs и работать хорошо. Проблема заключается в том, что вышеупомянутый cronjob не выполняет работу, а другой - хорошо. Может быть, я пропустил некоторые настройки, но я этого не понял :( –