Welcome to the Linux Foundation Forum!

Lab 14.6. Scheduling a Periodic Task with cron

Hi,

From previous knowledge, I so far created any coronjobs with the "crontab -e" command. According to the solution in Lab 14.6. I'm supposed to create a crontab file named "mycrontab". But where do I have to create this file? In /etc/crontab.d/?

Thnaks.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Answers

  • Hi @albiurs,

    But where do I have to create this file? In /etc/crontab.d/?

    Crontab can read a file and create a crontab based on the instructions of it. So, in this case we are using a file called "mycrontab" to store and pass instructions to crontab. For that reason it can be anywhere, because it will be read just once, then a new crontab file will be created in the appropriate place.

    Regards,
    Luis.

  • Hi Luis,

    Thanks a lot for your replay and sorry for the late response.

    I still do not fully understand. For example if I create a new file like ~/Documents/mycrontab with vim, and add some cronjob direction to it, it will not do anything yet. Somehow I have to tell the OS that this file must be read and interpreted by cron. So this has to be done with the crontab command like crontab path/to/file , right? But what happens then? Do I still need the original the original mycrontab file and where will the final file be crated? And what about the /etc/cron.* directories? If I do an ls -l /etc/cron.{d,hourly,daily,weekly,monthly} I see that there are already a lot of files inside these folders:

    1. ┌──(alu@qtwixnb)-[~]
    2. └─$ ls -l /etc/cron.{d,hourly,daily,weekly,monthly}
    3. /etc/cron.d:
    4. total 20
    5. -rw-r--r-- 1 root root 285 Jan 10 2023 anacron
    6. -rw-r--r-- 1 root root 201 Mar 5 2023 e2scrub_all
    7. -rw-r--r-- 1 root root 396 Dec 4 2022 sysstat
    8. -rw-r--r-- 1 root root 158 Mar 23 21:08 timeshift-boot
    9. -rw-r--r-- 1 root root 137 Mar 23 21:08 timeshift-hourly
    10.  
    11. /etc/cron.daily:
    12. total 56
    13. -rwxr-xr-x 1 root root 311 Jan 10 2023 0anacron
    14. -rwxr-xr-x 1 root root 1478 May 25 2023 apt-compat
    15. -rwxr-xr-x 1 root root 314 Aug 17 2021 aptitude
    16. -rwxr-xr-x 1 root root 123 Mar 27 2023 dpkg
    17. -rwxr-xr-x 1 root root 4722 Sep 29 2023 exim4-base
    18. lrwxrwxrwx 1 root root 37 Sep 10 03:08 google-chrome -> /opt/google/chrome/cron/google-chrome
    19. -rwxr-xr-x 1 root root 2211 Feb 10 2018 locate
    20. -rwxr-xr-x 1 root root 377 Dec 14 2022 logrotate
    21. -rwxr-xr-x 1 root root 1395 Mar 12 2023 man-db
    22. lrwxrwxrwx 1 root root 41 Sep 5 02:26 microsoft-edge -> /opt/microsoft/msedge/cron/microsoft-edge
    23. -rwxr-xr-x 1 root root 7175 Sep 12 06:33 opera-browser
    24. -rwxr-xr-x 1 root root 518 Dec 4 2022 sysstat
    25.  
    26. /etc/cron.hourly:
    27. total 0
    28.  
    29. /etc/cron.monthly:
    30. total 4
    31. -rwxr-xr-x 1 root root 313 Jan 10 2023 0anacron
    32.  
    33. /etc/cron.weekly:
    34. total 8
    35. -rwxr-xr-x 1 root root 312 Jan 10 2023 0anacron
    36. -rwxr-xr-x 1 root root 1055 Mar 12 2023 man-db

    Thanks.

    Regards,
    Urs

  • Hi Urs,

    I still do not fully understand. For example if I create a new file like ~/Documents/mycrontab with vim, >and add some cronjob direction to it, it will not do anything yet.

    That's right.

    Somehow I have to tell the OS that this file must be read and interpreted by cron. So this has to be >done with the crontab command like crontab path/to/file , right?

    Exactly.

    But what happens then? Do I still need the original the original mycrontab file and where will the final >file be crated? And what about the /etc/cron.* directories?

    You don't need the original file anymore, because the content of the file has been stored already. It's in the following directory:

    /var/spool/cron/crontabs

    So, the crontab file will be the user's name that you are working with. And if you look into the file, you will see the crontab's data:

    cat /var/spool/cron/crontabs/ubuntu

    DO NOT EDIT THIS FILE - edit the master and reinstall.

    (mycrontab installed on Mon Sep 16 10:09:06 2024)

    (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

    0 10 * * * /tmp/myjob.sh

    In my case the user's name is ubuntu.

    I hope that helps!

    Many regards,
    Luis.

  • Posts: 51

    Hi Luis,

    Thank you very much. I got it now. I was just confused because I always edited the crontab directly and never used an input file to create / overwrite the crontab.

    Best wishes,
    Urs

  • It's a pleasure, Urs!

    Regards,
    Luis.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training