Hi,
I installed Frappe and ERPNext using
sudo bash setup_frappe.sh --setup-production --verbose
on a Ubuntu 14.04 32bit DigitalOcean droplet where only one username, swap and SSH keys had been installed and Python upgraded to 2.7.9.
One of the messages I got during the install was “Scheduler is disabled”. I am only guessing what the scheduler should do and I don’t understand what is its’ relation to cron.
I think both cron and something else are recording backups which I don’t know how to control. When I look at Backup Manager I now have
2015-08-30 11:40 /backups/20150830_78004045_files.tar 180.0K
2015-08-30 11:40 /backups/20150830_78004045_database.sql.gz 310.3K
2015-08-30 12:00 /backups/20150830_91229094_database.sql.gz 310.6K
crontab –l gives
0 */6 * * * cd /home/username/frappe-bench && /usr/local/bin/bench --site all backup >> /home/username/frappe-bench/logs/backup.log 2>&1
so I think the third backup file was recorded by cron.
When I try to enable scheduler from the bench I get the following errors:
username@myserver:~/frappe-bench$ bench frappe --enable_scheduler
frappe app is not installed. Run the following command to install frappe
bench get-app frappe https//github.com/frappe/frappe.git
Traceback (most recent call last):
File “/usr/local/bin/bench”, line 9, in
load_entry_point(‘bench==0.92’, ‘console_scripts’, ‘bench’)()
File “/home/username/bench-repo/bench/cli.py”, line 46, in cli
return old_frappe_cli()
File “/home/username/bench-repo/bench/cli.py”, line 98, in old_frappe_cli
os.execv(f, [f] + sys.argv[2:])
OSError: [Errno 2] No such file or directory
username@myserver:~/frappe-bench$ bench get-app frappe
https//github.com/frappe/frappe.git
fatal: destination path ‘frappe’ already exists and is not an empty directory.
Traceback (most recent call last):
File “/usr/local/bin/bench”, line 9, in
load_entry_point(‘bench==0.92’, ‘console_scripts’, ‘bench’)()
File “/home/username/bench-repo/bench/cli.py”, line 60, in cli
bench()
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 700, in call
return self.main(*args, **kwargs)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 680, in main
rv = self.invoke(ctx)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 1027, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 873, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 508, in invoke
return callback(*args, **kwargs)
File “/home/username/bench-repo/bench/cli.py”, line 174, in get_app
_get_app(name, git_url, branch=branch)
File “/home/username/bench-repo/bench/app.py”, line 52, in get_app
cwd=os.path.join(bench, ‘apps’))
File “/home/username/bench-repo/bench/utils.py”, line 104, in exec_cmd
raise CommandFailedError(cmd)
bench.utils.CommandFailedError: git clone https//github.com/frappe/frappe.git --depth 1 --origin upstream frappe
username@myserver:~/frappe-bench$
When I look in worker.error.log I see the following:
worker: Cold shutdown (MainProcess)
[2015-08-30 11:40:19,750: WARNING/MainProcess] celery@myserver ready.
[2015-08-30 11:40:24,213: WARNING/Worker-1] Database backed up
[2015-08-30 11:40:24,218: WARNING/Worker-1] /home/username/frappe-bench/sites/site1.local/private/backups/20150830_78004045_database.sql.gz
[2015-08-30 11:40:24,234: WARNING/Worker-1] Backed up files
[2015-08-30 11:40:24,235: WARNING/Worker-1] /home/username/frappe-bench/sites/site1.local/private/backups/20150830_78004045_files.tar
[2015-08-30 11:40:24,332: WARNING/Worker-1] /home/username/frappe-bench/env/local/lib/python2.7/site-packages/urllib3/util/ssl_.py:97: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see [Advanced Usage - urllib3 2.2.0 documentation][1].
InsecurePlatformWarning
[2015-08-30 11:40:25,341: WARNING/Worker-1] Traceback (innermost last):
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 57, in take_backups_dropbox
did_not_upload, error_log = backup_to_dropbox()
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_dropbox.py”, line 92, in backup_to_dropbox
upload_file_to_dropbox(filename, “/database”, dropbox_client)
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_dropbox.py”, line 152, in upload_file_to_dropbox
dropbox_client.put_file(folder + “/” + os.path.basename(filename), f, overwrite=True)
File “/home/username/frappe-bench/env/local/lib/python2.7/site-packages/dropbox/client.py”, line 385, in put_file
return self.rest_client.PUT(url, file_obj, headers)
File “/home/username/frappe-bench/env/local/lib/python2.7/site-packages/dropbox/rest.py”, line 327, in PUT
return cls.IMPL.PUT(*n, **kw)
File “/home/username/frappe-bench/env/local/lib/python2.7/site-packages/dropbox/rest.py”, line 264, in PUT
return self.request(“PUT”, url, body=body, headers=headers, raw_response=raw_response)
File “/home/username/frappe-bench/env/local/lib/python2.7/site-packages/dropbox/rest.py”, line 235, in request
raise ErrorResponse(r, r.read())
ErrorResponse: [403] u"Invalid app key (consumer key). Check your app’s configuration to make sure everything is correct."
[2015-08-30 11:40:25,586: WARNING/Worker-1] frappe.tasks.scheduler_task[98bc21e7-fd7c-423d-8ad4-c2b890a0db2a]: Method: daily_long, Handler: erpnext.setup.doctype.backup_manager.backup_manager.take_backups_daily
Traceback (innermost last):
File “/home/username/frappe-bench/apps/frappe/frappe/tasks.py”, line 90, in scheduler_task
frappe.get_attr(handler)()
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 39, in take_backups_daily
take_backups_if(“Daily”)
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 47, in take_backups_if
take_backups_dropbox()
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 65, in take_backups_dropbox
send_email(False, “Dropbox”, error_message)
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 101, in send_email
recipients = frappe.db.get_value(“Backup Manager”, None, “send_notifications_to”).split(“,”)
AttributeError: ‘NoneType’ object has no attribute ‘split’
[2015-08-30 11:40:25,596: ERROR/MainProcess] Task frappe.tasks.scheduler_task[98bc21e7-fd7c-423d-8ad4-c2b890a0db2a] raised unexpected: AttributeError(“‘NoneType’ object has no attribute ‘split’”,)
Traceback (most recent call last):
File “/home/username/frappe-bench/env/local/lib/python2.7/site-packages/celery/app/trace.py”, line 240, in trace_task
R = retval = fun(*args, **kwargs)
File “/home/username/frappe-bench/env/local/lib/python2.7/site-packages/celery/app/trace.py”, line 438, in protected_call
return self.run(*args, **kwargs)
File “/home/username/frappe-bench/apps/frappe/frappe/tasks.py”, line 90, in scheduler_task
frappe.get_attr(handler)()
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 39, in take_backups_daily
take_backups_if(“Daily”)
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 47, in take_backups_if
take_backups_dropbox()
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 65, in take_backups_dropbox
send_email(False, “Dropbox”, error_message)
File “/home/username/frappe-bench/apps/erpnext/erpnext/setup/doctype/backup_manager/backup_manager.py”, line 101, in send_email
recipients = frappe.db.get_value(“Backup Manager”, None, “send_notifications_to”).split(“,”)
AttributeError: ‘NoneType’ object has no attribute ‘split’
My questions are:
- why can’t I start the scheduler through bench?
- how do I stop these errors in the log file?
- where do I control the scheduler?
- do I need the cron job if the scheduler is running?
Many thanks.