Crontab -e gives me error messages

5,250

Solution 1

/usr/bin/crontab is the command used for editing your user crontab. Looks like you've overwritten the crontab command with a crontab config file. The file you should be changing is /etc/crontab, not /usr/bin/crontab.

$ file /usr/bin/crontab
/usr/bin/crontab: setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
$ file /etc/crontab
/etc/crontab: ASCII English text

To fix, reinstall the cron package (sudo apt-get --reinstall install cron), then make your changes in /etc/crontab.

Your crontab entry looks quite correct though, just in the wrong file.

EDIT Given that your cronjob only copies files within your own homedir, you might as well have it run as your user. If you want to use the systemwide crontab, put the following line in /etc/crontab

30 *    * * *   dnaneet    rsync /home/dnaneet/Downloads/*.pdf /home/dnaneet/Downloads/pdfs/

Though I'd just use the personal crontab, which you edit using the crontab command. In this case the line should be:

30 * * * * rsync "$HOME/Downloads"/*.pdf "$HOME/Downloads/pdfs/"

After you have done either change, that rsync command should run once an hour, at 00:30, 01:30, 02:30, 03:30, etc...

Solution 2

The format of your crontab file seems to be wrong. You are using spaces instead of tabs there. Please, see this.

Please, run the trivial example crontab file and see what happens. Then apply the similar changes about the format one by one to your file.

What is the command test? Do you have it in your PATH?

Share:
5,250

Related videos on Youtube

dearN
Author by

dearN

Updated on September 18, 2022

Comments

  • dearN
    dearN over 1 year

    I get a bunch of error messages when I run crontab -e

    Here are the error messages.

    And here is my crontab file under `/usr/bin/':

    # /etc/crontab: system-wide crontab
    # Unlike any other crontab you don't have to run the `crontab'
    # command to install the new version when you edit this file
    # and files in /etc/cron.d. These files also have username fields,
    # that none of the other crontabs do.
    
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # m h dom mon dow user  command
    17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
    25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
    30 *    * * *   root    rsync /home/dnaneet/Downloads/*.pdf /home/dnaneet/Downloads/pdfs/
    #
    

    I notice that the last task ('rsync') NEVER RUNS! Why is this happening? What did I do wrong?

    Running Ubuntu 11.10/Bash. I have read this... Am I missing a shebang? And I don't know if my anacron jobs run.

    Edit 1

    In light of Masi's comment, I commented out lines 17 thru 25 of my crontab file with #.

    Now when I run sudo crontab -e, all I get is:

    /usr/bin/crontab: 11: 17: not found
    /usr/bin/crontab: 12: 25: not found
    
    (gedit:4301): Gtk-WARNING **: Attempting to store changes into `/root/.local/share/recently-used.xbel', but failed: Failed to create
    

    file '/root/.local/share/recently-used.xbel.GOHVBW': No such file or directory

    (gedit:4301): Gtk-WARNING **: Attempting to set the permissions of `/root/.local/share/recently-used.xbel', but failed: No such file or
    

    directory

    What in the world?

    • dearN
      dearN about 12 years
      @Masi as posted in the original text, the error messages are here: gist.github.com/2255983 .. (sorry if the hyperlink didn't work for you :P)
    • Léo Léopold Hertz 준영
      Léo Léopold Hertz 준영 about 12 years
      Ok, I was blind. Better to paste some of them to the body such that it is fast to see the problem if possible.
    • Léo Léopold Hertz 준영
      Léo Léopold Hertz 준영 about 12 years
      Can you paste us the exact code which you are running, please, such as to dpaste.
  • dearN
    dearN about 12 years
    Wow! I didn't realize that! Thanks for the edit! However, sudo crontab -e still gives me the same errors! :(
  • Léo Léopold Hertz 준영
    Léo Léopold Hertz 준영 about 12 years
    @DNA Show me what you run and what you get. Paste it to dpaste for instance.
  • dearN
    dearN about 12 years
    You are right, test doesn't exist. I was being an idiot there and now I have commented lines 17 thru 52 out with the # symbol . I have made an edit in my question to include the result of running this.
  • Léo Léopold Hertz 준영
    Léo Léopold Hertz 준영 about 12 years
    Do you have Crontab in your PATH? Please, clarify the body of your question such that I can know better what you are running.
  • dearN
    dearN about 12 years
    Crontab is in my path. I added /etc and /etc/crontab to my $PATH in the .basrhc file. Unless there is something else that I need to add to my path, I am flabergasted.
  • dearN
    dearN about 12 years
    But rsync doesn't need quotes to work..
  • geirha
    geirha about 12 years
    @DNA It makes no sense to have /etc or /etc/crontab in PATH, so undo that change. You do not need to change PATH at all for this. All you need to do is add that rsync line to /etc/crontab, then it will be run once an hour by crond.
  • dearN
    dearN about 12 years
    Thanks for your answer. I reinstalled cron with apt-get as you recommended. However, after editing the crontab file crontab -e, I checked what it looked like under /etc/crontab and I see that my edit wasn't made. Is this the wrong place I am looking for the crontab I just edited?
  • geirha
    geirha about 12 years
    @DNA Different crontabs. crontab -e edits your user's personal crontab. /etc/crontab is a completely separate crontab file you can edit directly. Since it is not limited to a single user, it has a sixth field (which you don't have with crontab -e) telling which user the job should run as (in your case you chose root).
  • geirha
    geirha about 12 years
    @DNA The personal crontabs gets stored under /var/spool/cron/crontabs/. Do not edit those manually though, only modify them through the crontab command (e.g. with crontab -e)
  • dearN
    dearN about 12 years
    Ok. that makes sense. I'll check to see in a few minutes how well my crontab edit works! Thanks all of you!
  • Scott Severance
    Scott Severance about 12 years
    Spaces are perfectly acceptable in crontabs; you don't have to use tabs.
  • dearN
    dearN about 12 years
    rsync didn't need the quote. Thought I'd let you know. Thanks for trying! :)