Puncte:0

Ieșirea scriptului Bash pe ecran și în fișierul jurnal

drapel cn

Am creat un script simplu care face o comandă curl (o rulez în fiecare lună prin crontab) și l-am făcut ecou într-un fișier jurnal cu data rulării. Problema este că vreau să primesc și ieșirea scriptului shell în fișierul jurnal și sunt destul de sigur cum să realizez asta. Asta am:

#!/bin/bash
#
LOGFILE=/root/Delete-Old-Indices.log
Jurnalele #Nginx - Ștergeți mai vechi de 90 de zile
curl -XȘTERGERE XXXXXXXXXXXXXXXXXX
echo "$(data "+%d%m%Y %T"): Începe lucrul" >> $LOGFILE 2>&1

așa că acum primesc doar următoarea linie de jurnal în fișierul meu de jurnal: „Data + Ora: începerea lucrului” și nu primesc rezultatul scriptului shell în fișierul meu jurnal, îl văd doar în fereastra shell-ului.

Mulțumesc

pLumo avatar
drapel in
Răspunde asta la întrebarea ta? [Cum se redirecționează rezultatul către ecran, precum și către un fișier?](https://askubuntu.com/questions/38126/how-to-redirect-output-to-screen-as-well-as-a-file)
bac0n avatar
drapel cn
`printf '%(%d%m%Y %T)T: %s\n' -1 "Începe lucrul"` dacă intenționați să imprimați un șir de timp `printf` este o alegere mai bună.
Puncte:3
drapel cn

Puteți redirecționa orice ieșire către fișierul jurnal așa cum ați făcut-o pentru ecou comanda, adică folosind >> simbol de redirecționare.

Acest lucru ar face ca nicio ieșire să nu mai fie afișată pe ecran. Dacă doriți să vedeți și rezultatul, puteți utiliza tricou cu -A sau --adăuga opțiune, ca

curl -XDELETE XXXXXXXXXXXXXXXXXX | tee -a $LOGFILE

Aceasta redirecționează atât către fișier (adăugându-se la ceea ce este deja acolo), cât și către ecran.

Dacă ceea ce doriți este să colectați toate rezultatele din script într-un fișier jurnal, atunci pur și simplu redirecționați ieșirea în timp ce invocați scriptul shell. În cadrul scriptului în sine, veți elimina apoi toate redirecționările.

drapel ar
Aveam de gând să sugerez utilizarea simbolului de redirecționare `>>` în linia `crontab` cu scriptul bash, dar îmi place mai mult această soluție.
vanadium avatar
drapel cn
@user68186 ai dreptate și probabil că asta este mai mult ceea ce își dorește utilizatorul în acest caz specific: rulând dintr-o filă cron, nu se vede niciodată rezultatul ecranului. Am adăugat asta la răspuns

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.