An hourly job is started from cron. Its normal output should keep going to cron as usual, while its error messages must accumulate in /var/log/job.err so that the previous hours' messages survive. Which redirection belongs on the command line?
LPIC-1 Exam 101-500, objective 103. GNU and Unix commands easy
Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.
Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.
How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.
The options
Correct 2>> /var/log/job.err
Correct. The descriptor number 2 selects standard error and >> opens the file in append mode, so each run adds to what is already there.
Not correct 2> /var/log/job.err
Wrong. A single > truncates the file to zero length every time the job starts, so only the latest run's errors remain.
Not correct >> /var/log/job.err
Wrong stream. Without a descriptor number this appends standard output to the file, and the error messages continue to reach cron.
Not correct &>> /var/log/job.err
Wrong here. This bash form appends both streams to the file, so the normal output that cron is supposed to receive is diverted as well.
Why
The redirection operators come in truncating and appending pairs: > and >> for output, with an optional descriptor number immediately in front and no space between the number and the operator. 2> and 2>> therefore address standard error alone, while a bare > or >> addresses standard output. Log files that must survive repeated runs always need the appending form.
Where this comes from
- Cited
- manual page bash(1)
Practise this
Reading one question is not practice. The trainer will draw a short set from objective 103 and space the ones you get wrong.
More questions on this objective
- A user starts a new terminal window in a running graphical desktop session, which launches bash as an interactive shell that is NOT a login shell. Which file in the user's home directory does bash read in that case? machine-checked
- In bash, which history expansion re-runs the entire previous command line? machine-checked
- Which bash command prints the literal five characters $USER instead of the current user name? machine-checked
- You want /opt/bin searched for executables, after all the directories already in PATH, in the current bash session and in every command started from it. Which command does that? machine-checked
- There is a passwd manual page in section 1 (the command) and another in section 5 (the /etc/passwd file format). Which command opens the section 5 page? machine-checked
- Select the TWO true statements about shell variables and the environment in bash. machine-checked