mirror of https://github.com/01-edu/public.git
DEV-3920 feat(auto-jobs) add subject and tests for auto-jobs exercise
This commit is contained in:
parent
2cc7a8a432
commit
944e43772c
|
@ -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
|
Binary file not shown.
|
@ -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…
Reference in New Issue