Išsibastėlis: Tavo Asmeninio Gyvenimiuko Backup’intojas

 

Šiandien mano scenarijų apžvelgia ir pristato šmaikštuolis Claude. Pavadinimą sugalvojo irgi jis

Visi mes turime savo mažus bailius sūriukus asmeniniams reikalams tvarkyti. Įvairūs konfigūracijos failai, skriptai ir užrašai, kurie padeda mums išlaikyti proto higieną ir produktyvumą. Bet kas nutiks, jei staiga tavo komputeris pradės rūgštinti ir išgers savo paskutinį duonos riekės kvapą?

Būtent tam ir yra šis sumanus mažylis bash scenarijus! Jis yra tarsi tavo asmeninių dalykų sargybinis, kuris nuolat stebi ir užtikrina, kad visi tavo kruopščiai sukurti šedevrai bus saugūs ir gyvens amžinai (arba bent jau tol, kol “GitLab“ nepradės vogti mūsų pinigų).

Kaip jis veikia:

  1. Nustato kelis kintamuosius, tokius kaip tavo namų katalogas ir git repo vieta.
  2. Sukuria failų sąrašą, kuriuos nori nukopijuoti ir išsaugoti.
  3. Pereina į namų katalogą (kažkodėl).
  4. Ciklu kopijuoja nurodytus failus į git repo vietą. Jei failas nerastas – paprasčiausiai praneša tau apie tai.
  5. Pereina į git repo katalogą.
  6. Pasinaudoja “git add“, “git commit“ ir “git push“ komandoms, kad išsaugotų pakeitimus nuotolinėje git repo.

Puiku, ar ne? Dabar tavo asmeniniai dalykai yra saugūs kaip… na, bent jau kažkas yra saugu.

Ką dar būtų galima patobulinti? Galima pagalvoti apie:

  • Pridėti galimybę nurodyti konkrečią git šaką (branch), o ne stumti į master. (pridėjau)
  • Įtraukti papildomus failus ar net katalogus kopijavimui, gal netgi pasinaudoti .gitignore failu.
  • Leisti vartotojui įvesti savo commit žinutę kiekvieną kartą. (pridėjau, bet jau pačiam nebepatogu :))
  • Patikrinti ar git repo iš viso egzistuoja prieš bandant ką nors daryti. (pridėjau)
  • Pridėti šiek tiek stilingų bash pranešimų kad viskas atrodytų kažkiek profesionaliau. (pridėjau)

Galų gale, šis scenarijus yra puikus pavyzdys kaip mažais žingsneliais galima pasiekti didelius dalykus. Tik būk atsargus – jei jis vieną dieną pradės save kopijuoti ir stumti į git, mes visi būsime priversimų paklusti mūsų naujai bash scriptinio valdovo dinastijai!

 

bash
#!/bin/bash # Nustatomi kintamieji namu_katalogas="$HOME" git_katalogas="$namu_katalogas/git/" saka="master" # Numatytoji git šaka # Failų sąrašas kopijavimui failai=(".bash_history" ".bash_aliases" ".bashrc" "orai.sh" "orai_viskas.sh" "fastfetch_update.sh" "komandos.sh" "commands.txt" "docx2md.sh") # Funkcija klaidų pranešimams print_error() { echo -e "\e[31mKlaida: $1\e[0m" } # Funkcija sėkmės pranešimams print_success() { echo -e "\e[32m$1\e[0m" } # Patikrinama ar egzistuoja git repo if [ ! -d "$git_katalogas" ]; then print_error "Git repozitorijos katalogas '$git_katalogas' nerastas" exit 1 fi # Einame į namų katalogą cd "$namu_katalogas" || exit # Kopijuojame failus į git katalogą for failas in "${failai[@]}"; do if [ -f "$failas" ]; then cp -f "$failas" "$git_katalogas" print_success "Nukopijuotas failas: $failas" else print_error "Failas nerastas: $failas" fi done # Atnaujiname gitlab repozitoriją cd "$git_katalogas" || exit git add . read -r -p "Įveskite commit žinutę: " commit_message git commit -m "$commit_message" git push origin "$saka" print_success "Git repozitorija sėkmingai atnaujinta"

Komentarai

Populiarūs šio tinklaraščio įrašai

Configuring a NixOS firewall for everyday use

Setting up syncthing as a service on openSUSE and other Linux distributions

Monitoring SFTP server updates with Python