Browse Source

DEV-3920 feat(auto-jobs) add subject and tests for auto-jobs exercise

pull/1690/head
Zouhair AMAZZAL 1 year ago committed by Zouhair AMAZZAL
parent
commit
944e43772c
  1. 20
      sh/tests/auto-jobs_test.sh
  2. BIN
      sh/tests/solutions/auto-jobs.tar
  3. 70
      subjects/devops/auto-jobs/README.md

20
sh/tests/auto-jobs_test.sh

@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Unofficial Bash Strict Mode
set -euo pipefail
IFS='
'
print_content() {
mkdir -p uncompressed
tar -xpf auto-jobs.tar -C uncompressed
cat -e uncompressed/$1
}
for i in 1 2 3 4
do
submitted=$(cd student && print_content task$i)
expected=$(cd solutions && print_content task$i)
diff <(echo "$submitted") <(echo "$expected")
done

BIN
sh/tests/solutions/auto-jobs.tar

diff.bin_not_shown

70
subjects/devops/auto-jobs/README.md

@ -0,0 +1,70 @@
## auto-jobs
### Instructions
In this exercise you will create different files `task1`, `task2`, `task3`, `task4` containing the formulas required for setup a group of Scheduled tasks in the group.
##### task1:
Time: `Every Friday, at 20:41`
Command: `echo "01"`
##### task2:
Time: `Every minute`
Command: `sh /home/user01/check`
##### task3:
Time: `Everyday midnight at 12 AM`
Command: `sh /home/user01/backup`
##### task4:
Time: `After Every Reboot`
Command: `01exec`
All files content must be in this format:
```console
$ cat task-example | cat -e
* * * * * {command}$
$
```
Once it is done, use the command below to create the file `auto-jobs.tar` to be submitted.
```console
$ tar -cf auto-jobs.tar task1 task2 task3 task4
$ ls
task1 task2 task3 task4 auto-jobs.tar
```
**Only `auto-jobs.tar` should be submitted.**
### Hints
Linux Cron utility is an effective way to schedule a routine background job at a specific time and/or day on an on-going basis.
You can use the `crontab` command to manage your jobs. This command can be called in four different ways:
`crontab -l`: List the jobs for the current user
`crontab -r`: Remove all jobs for the current users.
`crontab -e`: Edit jobs for the current user.
##### Linux Crontab Format:
`MIN HOUR DOM MON DOW CMD`
##### Table: Crontab Fields (Linux Crontab Syntax):
![Table: Crontab Fields](https://assets.01-edu.org/devops-branch/cronTasks-Table.png)
##### Examples:
1. Schedule a job every hour at the fifth minute, every day: `5 * * * * {command}`
2. Schedule a job 5 minutes after midnight every day: `5 0 * * * {command}`
> You have to use Man or Google to know more about commands flags, in order to solve this exercise!
> Google and Man will be your friends!
### References
- [an editor for cron schedule expressions](https://crontab.guru/).
Loading…
Cancel
Save