Sailcron

Rating: 
5
Your rating: None Average: 5 (13 votes)

Warning regarding SailfishOS upgrades:

to prevent any misbehavior of the cron daemon, please stop the daemon before starting any OS upgrade

 

Frontend for the cron scheduler. Makes it easy to view your schedules in a more friendly way.

Also gives the opportunity to fully manage crontabs of nemo and root. The usual warning: always be careful with root permissions. Disabling is achieved by adding a specific comment string in the cron entry.

Displayed commands can be replaced by a more meaningful text.

Using cron-descriptor for the conversion of cron expressions into human readable strings.

Using python-crontab for the cron timestring syntax check.

Needs vixie-cron or cronie as cron daemon, which can be found in my repo.

Loading a large crontab can cause some unresponsiveness.

If you want to play more with the crontab syntax, you can have a try here: http://www.corntab.com/pages/crontab-gui

Why use cron as a scheduler?

  • Stable, simple and well known
  • Low on resources and a wakelock only every minute does not really effect battery usage
  • Systemd timers are not accurate, because they are effected by sleep states
  • Timed-qt5 (the "native" scheduling) would have been another option. I worked with something similar on Maemo, which I liked, but was missing documentation and implemented features

 

Swedish translation: eson

Sources can be found on github

 

Screenshots: 

Keywords:

Application versions: 
AttachmentSizeDate
File harbour-sailcron-0.1-17.i486.rpm131.93 KB29/04/2017 - 23:58
File harbour-sailcron-0.1-17.armv7hl.rpm129.91 KB29/04/2017 - 23:58
File harbour-sailcron-0.1-18.i486.rpm132.16 KB16/07/2017 - 19:27
File harbour-sailcron-0.1-18.armv7hl.rpm130.22 KB16/07/2017 - 19:27
File harbour-sailcron-0.1-20.armv7hl.rpm159.28 KB14/02/2019 - 00:22
File harbour-sailcron-0.1-20.i486.rpm161.13 KB14/02/2019 - 00:22
File harbour-sailcron-0.1-21.armv7hl.rpm161.07 KB16/08/2019 - 22:24
File harbour-sailcron-0.1-21.i486.rpm163.29 KB16/08/2019 - 22:24
File harbour-sailcron-0.2-1.armv7hl.rpm161.2 KB11/01/2020 - 00:02
File harbour-sailcron-0.2-1.i486.rpm163.43 KB11/01/2020 - 00:02
File harbour-sailcron-0.3-1.i486.rpm164.38 KB18/01/2020 - 23:48
File harbour-sailcron-0.3-1.armv7hl.rpm162.4 KB18/01/2020 - 23:48
File harbour-sailcron-0.4-2.armv7hl.rpm162.14 KB25/04/2020 - 01:24
File harbour-sailcron-0.4-2.i486.rpm164.37 KB25/04/2020 - 01:24
Changelog: 
  • 0.4-2
    • Yet another fix for SFOS 3.3.0: writing failed as Jolla moved to busybox base64 command
  • 0.4-1
    • Fix for SFOS 3.3.0 so custom descriptions are displayed again
    • Small change in notification
  • 0.3-1
    • Load custom texts async for faster loading
    • Minor layout changes
  • 0.2-1
    • updated python-crontab and cron-descriptor
    • No longer require vixie-cron as a dependency
  • 0.1-21
    • Added button to cleanup orphaned custom texts
    • Upgraded python-crontab to 2.3.7
    • Latest changes from cron-descriptor
  • 0.1-20
    • Now support @reboot,@weekly etc.
    • Updated python-crontab and cron descriptor to latest version
  • 0.1-18
    • Cron descriptor updated to 1.2.9
    • Python-crontab updated to 2.2.3
  • 0.1-17
    • Increased max length cron line
    • Cron descriptor updated to 1.2.8
    • Python-crontab updated to 2.2.1
  • 0.1-16 Implemented python call_sync workaround (credits otsaloma) due to bug in 2.1.0.x
  • 0.1-15 Updated swedish translation
  • 0.1-14
    • Edit menu selectable directly from detailspage
    • Synced python-crontab to upstream 2.1.1
    • Cron syntax checker will now fail if cron range is backwards
  • 0.1-13 Settingspage no longer a dialog page (with cancel/accept)
  • 0.1-12 fixed introduced bug that would insert invalid cron entry
  • 0.1-11
    • The input "*/number" was not correctly passed
    • Limit accepted input characters
    • Added new python module for actual cron string checking
  • 0.1-10
    • Increased max length of input fields
    • Included upstream fix for cron-descriptor
  • 0.1-9
    • Updated Swedish
    • Added Dutch language
  • 0.1-8
    • No auto capitalisation in command field
    • Create custom names for execution string
  • 0.1-7 Fixed not showing cron entries with '=' sign
  • 0.1-6 Fixed weekday numbers explanation
  • 0.1-5 Fix: pipe symbol was not handled correctly
  • 0.1-4
    • Included cron-descriptor upstream change for week/month localizations
    • Swedish translation updated
  • 0.1-3
    • Fix: ignoring settings in crontab led to corruption
    • Manage crontab daemon from settings page
  • 0.1-2 Fix: try to ignore settings done in crontab
  • 0.1-1
    • Added Swedish translation
    • Localized days of week in cron-descriptor part
  • 0.1-0 Initial version

Comments

dexic's picture

I have downloaded it manually from OpenRepos.net now.

Still doesn't work. :-(

ade's picture

There was indeed something really weird going on with openrepos which made the latest version not available. I re-uploaded the rpm's once again and now they are visible as update.

ade's picture

Then I need the terminal logs I was talking about earlier. Without them, I can't tell what is going on on your phone.

dexic's picture

I wish that I could send a screenshot of Storeman.

dexic's picture

Your changelog shows 0.4-2. Storeman offers me 0.3-1. With pkcon refresh there is nothing happening.

dexic's picture

Hello! For me it doesn't save any new entries. Xperia 10 on 3.3.0.14. Update not available. Storeman offers 0.3-1.
crontab -e gives output:
no crontab for nemo - using an empty one
/bin/sh: /usr/bin/vi: No such file or directory
crontab: "/usr/bin/vi" exited with status 127

ade's picture

But wait, you have Sailcron 0.3-1 installed??? That's not compatible with SailfisOS 3.3. You really need 0.4-2. Try a manual "pkcon refresh" or something.

ade's picture

Just tested myself, no problems here.

I suppose you have /usr/bin/vi as EDITOR env setting, but no vi installed?

Will have to investigate if that can interfer with sailcron. Maybe starting harbour-sailcron in the terminal will give extra info when you try to add an entry?

PawelSpoon's picture

The corntab link leads to nowhere i think

ade's picture

Yeah, it moved from launchpad to github to gitlab in a short period of time. But now it should be up-to-date again.

olf's picture

WRT the "warning regarding SailfishOS upgrades":
Is there an easy way to disable Sailcron from the command line?

ade's picture

It's not Sailcron but the cron deamon (as root): systemctl stop cron

olf's picture

 Thanks (& sorry for asking without thinking).

Louis's picture

 

Thanks for this great app.

Any reason for using cron over systemd timers? :)

ade's picture

The answer to your question has been mostly answered over here, in a comment by Self_Perfection, followed by my reaction.
I did put some more reasoning in the description.

manisblack's picture

Hello and thank you for this application but unfortunately it no longer works on SailfishOS 2.1.0.9
This message is a translation of translate.google

Here is the return of my terminal

[nemo@Sailfish ~]$ harbour-sailcron
[D] unknown:0 - Using Wayland-EGL
[D] :145 - pretty_cron module is now imported
[W] unknown:194 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:194: TypeError: Cannot read property 'backIndicatorDown' of null
[W] unknown:189 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:189: TypeError: Cannot read property 'backIndicatorDown' of null
[W] unknown:247 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:247: TypeError: Cannot read property 'forwardIndicatorDown' of null
[W] unknown:242 - file:///usr/lib/qt5/qml/Sailfish/Silica/DialogHeader.qml:242: TypeError: Cannot read property 'forwardIndicatorDown' of null
[D] :325 - pretty_cron module is now imported
[D] :328 - valid_cron module is now imported
[D] onError:334 - python error: Not a parameter list in call to valid_cron.validate_cron:
[W] unknown:85 - file:///usr/share/harbour-sailcron/qml/pages/AddPage.qml:85: Error: Cannot assign [undefined] to bool

ade's picture

I am aware of this, hitting the same bug as Otsaloma reported (https://together.jolla.com/question/156736/2109-pyotherside-call_sync-br...). As I already implemented his workaround for now, I will release a new version.

manisblack's picture

Thanks for this update

ade's picture

That's a cool site, I have visited it earlier. Even considered creating a similiar interface, but in the end decided to keep it simple and use text input fields.
In combination with some explanation above the input fields and all the info about cron to be found on the internet, people should manage. And entering values like this keeps people closer to the actual cron syntax.

But this side can be a good exercise/validation site, I did add it to the description here.

eson's picture

Maybe this link could generate some new cron users... :)

http://www.corntab.com/pages/crontab-gui

cizi's picture

Hello, thanks for this application. But can you give me a hint? I tried to added an entry but no luck. I filled all the fields, verified the entry and confirmed save but no line appeared for user nemo in list. What do I wrong? 

ade's picture

hi cizi,

You seem to be right, I can modify entries, but new ones are not saved. I don't know what the issue is, but I will fix it asap.

cizi's picture

Thanks for answer and solution as well! But no worries, no rush.

ade's picture

should be solved now. I must be more careful with pasting ;-)

You will probably have some invalid crontab entries; you can remove them using "crontab -e" on the terminal.

objectifnul's picture

If I enter “0,1,3-6” for the 'day of the week' field, the syntax analyzer says “ok” but the task is displayed with “error in settings” (too bad, as I wanted to set an auto off task for every day except Tuesday to allow the weekly btrfs balance)
Btw “0,1,3,4,5,6” is too long and not accepted.

ade's picture

I will increase the input length of the fields so e.g. “0,1,3,4,5,6” will fit.

Your cronjob should already work as scheduled, but it looks like it can't display the combination of separate weekdays and a range of weekdays. I will make a bugreport for the person who made the module for the human readable translations.

Thanks for reporting.

ade's picture

The cron-descriptor part is targeted for describing the cron rule, not for checking the validity of the string.
That's why I also included another module, python-crontab. This can validate the string. Works pretty good, but still accepts '6-3' as day of week. I may report that.
Furthermore I limited the accepted input characters.

objectifnul's picture

Note that “3-1” is accepted. The descriptor displays “From Wednesday to Monday”. That's fine.

ade's picture

That's another clever approach :-)

Edit: with version 0.0.1-10 both issues should be solved

objectifnul's picture

After checking, "3-1" is actually accepted and correctly translated into human readable language, but not applied: the job is not launched.

"0,1,3,4,5,6" is OK after last update (v0.1-10)

Pages