Puncte:0

cron rsync, cum se redirecționează către un fișier de pe desktop

drapel kn

Aș dori o copie de rezervă regulată a fișierelor de pe disc pe un server de rezervă. Deoarece am o mulțime de fișiere (milioane), vreau să folosesc rsync, astfel încât să fie trimise numai diferențele.

de la terminalul Ubuntu 18.04, aceasta produce rezultate într-un fișier:

rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

Dar când folosesc crontab -e, pentru marca de 16 minute a orei (pentru a testa)

16 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop

Nu am văzut rezultatul din acest fișier pe desktop. În comentarii, steeldriver a sugerat remedierea problemei 1 crontab -e acum arata asa:

SHELL=/bin/bash
52 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-14TB-z2/3970x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

Problema 2: Acum am rezultate în fișier, dar rsync are probleme cu permisiunile.Mediul crontab în ceea ce privește cheile SSH nu este același cu mediul terminalului? Iată rezultatul din fișier:

Permisiune refuzată, vă rugăm să încercați din nou.
Permisiune refuzată, vă rugăm să încercați din nou.
[email protected]: Permisiune refuzată (cheie publică, parolă).
rsync: conexiune închisă în mod neașteptat (0 octeți primiți până acum) [expeditor]
eroare rsync: eroare inexplicabilă (cod 255) la io.c(235) [sender=3.1.2]
drapel hr
Setați `SHELL=/bin/bash` în crontab? În caz contrar, va rula în `/bin/sh` - care nu înțelege redirecționarea `&>` specifică bash
drapel hr
Da, adăugați `SHELL=/bin/bash` ca o linie separată (oriunde) mai sus - sau schimbați la sintaxa de redirecționare POSIX `> /home/john/Desktop/nightly_disk2_logs.txt 2>&1`
drapel cn
„Crontab nu folosește chei SSH?” Nu, pentru ce are nevoie crontab de chei ssh!? Acestea sunt pentru conexiuni externe. Deci rsync are nevoie de ele. Aș sugera să-l furnizați în comanda rsync. --password-file și fișierul furnizat are nevoie de 600 ca permisiuni
grabbag avatar
drapel kn
Formularea mea ar fi putut fi mai bună. Ar fi trebuit să spun: „Mediul crontab în ceea ce privește cheile SSH nu este același cu mediul terminalului?” Răspunsul este, evident, nu, având în vedere capacitatea --password din RSYNC pe care ați semnalat-o. Mulțumesc că ai subliniat acest lucru.
grabbag avatar
drapel kn
--password-file /home/john/.ssh/id_rsa.pub are ca rezultat o eroare Opțiunea --password-file poate fi utilizată numai când accesați un daemon rsync.
grabbag avatar
drapel kn
Am eliminat fraza de acces de pe cheia ssh și acum funcționează fără --password-file. Deci, se pare că SHELL=/bin/bash, ca prima linie este suficientă pentru ca crontab să ofere ssh că rsync folosește acces la chei.
Puncte:0
drapel kn

youtube descrie procesul.

Principalele mele concluzii:

  • nicio frază de acces pe cheile ssh
  • adăugați SHELL=/bin/bash ca prima linie a crontab -e
  • &> /home/john/Desktop/backup_disk2_logs.txt pentru a crea un fișier jurnal, uitați-vă și la

Crontab -e-ul meu arată astfel:

SHELL=/bin/bash
00 * * * * rsync -av /Disk2/ 192.168.1.80:/mnt/jjg-z2/disk2/ &> /home/john/Desktop/disk2_logs.txt

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.