Pranešimai

Rodomi įrašai su etikete „Linux

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

 In this blog post, we'll guide you through setting up Syncthing, an open-source continuous file synchronization tool, as a systemd service on openSUSE. Additionally, we'll provide instructions for Debian/Ubuntu, Arch Linux, and Fedora users, though these will be commented out for you to uncomment as needed. Šiame blogo įraše aptariame, kaip sukurti syncthing kaip sisteminį servisą openSUSE ir kitose Linux distribucijose. Skriptas automatiškai įdiegs syncthing , sukurs serviso failą, nustatys leidimus ir įjungs servisą. Pateikiamos instrukcijos įvairioms distribucijoms, nurodomi privalumai ir trūkumai, bei galimi patobulinimai. #!/bin/bash # Naudotojo vardo kintamasis / Username variable USERNAME=$(whoami) # Įdiek syncthing / Install syncthing sudo zypper install -y syncthing # sudo apt install -y syncthing # Uncomment for Debian/Ubuntu based systems # sudo pacman -S syncthing # Uncomment for Arch Linux # sudo dnf install -y syncthing # Uncomment for Fedora # Su

Automatinis didelio kiekio failų siuntimo per Telegram skriptas

Vaizdas
 Įvadas Prieš pradedant detaliai nagrinėti šį scenarijų, norėčiau paminėti, kad jau perkėliau savo tinklaraštį iš wordpress.com , nes gavau nusiskundimų dėl pernelyg didelio reklaminių partnerių kiekio mano tinklaraštyje. Taip pat nusprendžiau, kad komentarus skriptuose rašysiu anglų kalba. Tai ne tik pagerins mano anglų kalbos įgūdžius, bet ir padės kitiems programuotojams lengviau suprasti mano kodą. #!/bin/bash # Įkelkite konfigūracijos failą (naudokite pilną arba reliatyvų kelią) # Load the configuration file (use full or relative path) CONFIG_FILE="$(dirname "$0")/config.sh" if [ ! -f "$CONFIG_FILE" ]; then echo "Config failas nerastas: $CONFIG_FILE" # Configuration file not found exit 1 fi source "$CONFIG_FILE" echo "Naudojamas config.sh failas: $CONFIG_FILE" # Using config.sh file echo "chat_id: $chat_id, bot_token: $bot_token" chat_id="$group_chat_id" # Nurodytas ka

Calibre duomenų bazės archyvavimas į Telegram

Vaizdas
  Norėjau išsaugoti Calibre duomenų bazę, kurios dydis siekia 26 GB, ir įkelti ją saugojimui į Telegram. Kadangi Telegram turi įkėlimo failų dydžio ribojimus, nusprendžiau suskirstyti duomenis į mažesnius archyvus, kiekvieno apie 1 GB dydžio. Įvadas Šis įrašas skirtas supažindinti su bash skriptu, kuris automatiškai archyvuoja failus iš nurodyto katalogo į mažesnius gabaliukus, kad atitiktų nustatytą dydį. Apžvelgsiu, kam šis skriptas skirtas, kaip jis veikia, kaip jį naudoti, jo privalumus ir trūkumus bei potencialius patobulinimus.   #!/bin/bash # Pradiniai nustatymai SOURCE_DIR="/media/vaidotak/1f3e2462-ef6f-47a1-a3f8-9300d4bec261/calibre/" DEST_DIR="$HOME/Archyvuoti/Calibre" # Kur išsaugoti archyvus MAX_SIZE=$((1024 * 1024 * 1024)) # Maksimalus archyvo dydis baitais (1 GB) COUNTER=1 # Sukuriame tikslinį katalogą, jei jo nėra mkdir -p "$DEST_DIR" # Funkcija sukurti tar archyvą iš failų sąrašo create_archive() { local archive_name="${DES

Kaip automatiškai tvarkyti terminalo užrašus su Bash skriptu

Vaizdas
  Įvadas Sveiki, šiame įraše noriu pasidalinti paprastu, tačiau labai naudingu Bash skriptu, skirtu automatiškai tvarkyti ir saugoti užrašus tiesiai iš terminalo. Šis scenarijus yra puikus įrankis tiems, kurie daug laiko praleidžia terminale ir nori greitai bei patogiai užsirašyti svarbias pastabas ar užduotis. Kam skirtas šis scenarijus? Šis scenarijus skirtas visiems, kurie nori turėti centralizuotą vietą savo užrašams, ypač tiems, kurie naudojasi Obsidian arba panašiomis užrašų tvarkymo programomis. Tai yra puikus būdas organizuoti ir struktūrizuoti savo mintis bei užduotis, nereikalaujantis sudėtingų įrankių ar programų. Kaip veikia šis scenarijus? Skriptas tikrina, ar failas terminal_notes.md egzistuoja. Jei ne – jis sukuriamas ir inicializuojamas su pradiniu formatu. Jei failas jau egzistuoja, skriptas arba prideda naują įrašą, arba parodo esamus užrašus, priklausomai nuo pateiktų argumentų. Kaip naudotis? Inicializacija : Kai pirmą kartą p

Skriptas disko naudojimo stebėjimui

Vaizdas
  Šiame įraše aptarsime „bash“ skriptą, kuris skirtas stebėti jūsų disko naudojimą ir vaizduoti jį grafiškai su spalvomis. Pateiksiu, kam šis skriptas skirtas, kaip jis veikia, kaip juo naudotis bei jo privalumus ir trūkumus. Skripto tikslas Skriptas „disko_vieta“ yra skirtas vartotojams, kurie nori greitai ir efektyviai peržiūrėti savo disko naudojimo informaciją. Jis parodo kiek užimta ir kiek laisva vietos jūsų pagrindiniame diske („/“) bei kitame nurodytame diske (pvz., prijungtame atminties įrenginyje). Pats jį jungiu prie kito skripto, kaip papildymą. Kaip veikia skriptas Šis „bash“ skriptas naudoja df komandą, kad gautų disko naudojimo informaciją. Po to jis sukuria grafinę juostą, kuri vizualiai parodo naudojamą disko vietą su spalvomis pagal užimtumo procentą: Pilka spalva: Užimta mažiau nei 30%. Žalia spalva: Užimta nuo 30% iki 50%. Geltona spalva: Užimta nuo 50% iki 80%. Raudona spalva: Užimta daugiau nei 80%. Viduryje juostos yra parodo

Pasitikrinam su ShellCheck

  Šis scenarijus (bash skriptas) skirtas patikrinti bash skriptų sintaksės klaidas naudojant įrankį shellcheck . Jis leidžia lengvai peržiūrėti visus .sh failus, esančius jūsų $HOME/git ar kokiame nors kitame kataloge, ir pasirinkti norimą patikrinti skriptą. Po to, shellcheck įrankis yra paleidžiamas su pasirinktu skriptu, kad nustatytų galimas sintaksės ar kitas klaidas ir neefektyvumus. Kaip veikia Skriptas parodo visų .sh failų sąrašą jūsų parinktame kataloge ir prašo įvesti norimo skripto numerį. Jis patikrina, ar įvestas numeris yra tinkamas (sveikasis skaičius) ir ar patenka į galimų skriptų diapazono ribas. Gavęs tinkamą numerį, jis nusistato pasirinktą skriptą pagal įvestą numerį. Tuomet patikrinama, ar shellcheck įrankis yra įdiegtas sistemoje. Jei ne, rodomas klaidos pranešimas ir skriptas baigia darbą. Jei shellcheck yra įdiegtas, paleikiama shellcheck komanda su pasirinktu skriptu, kad būtų parodyta jo analizė. Privalumai Paprasta naudoti: lengva per

Persikeliant skriptus į naują Debian kompiuterį: kaip užtikrinti, kad visi reikalingi įrankiai bus įdiegti

 Persikeliant skriptus į naują kompiuterį, dažnai susiduriame su problema, kad skriptai neveikia tinkamai arba iš viso neveikia dėl trūkstamų programų. Tai ypač aktualu naudojant Debian ar kitą Linux distribuciją, kurioje gali nebūti visų skriptuose naudojamų programų. Šiame straipsnyje aptarsiu, kaip automatizuoti šį procesą ir užtikrinti, kad visi reikalingi įrankiai būtų įdiegti naujoje sistemoje. Problemų diagnostika Keliant skriptus į kitą kompiuterį, pastebėjau, kad daugelis jų neveikia dėl trūkstamų programų, tokių kaip zenity , kdialog , jq ir t.t. Norint, kad skriptai veiktų, reikia įsitikinti, kad visos šios programos yra įdiegtos naujoje sistemoje. Sprendimo planas Tam, kad išspręsti šią problemą, sukūriau du Bash skriptus. Pirmasis skriptas suranda visas naudojamas programas .sh failuose, esančiuose tam tikrame kataloge, ir išsaugo jas į failą. Antrasis skriptas naudoja šį sąrašą, kad įdiegtų trūkstamas programas naujoje sistemoje. Skriptas prog

Regex į pagalbą dataview

Vaizdas
  Įvadas Šis įrašas yra apie labai specifinį Bash skriptą, kurį sukūriau savo asmeniniams poreikiams. Nors jis gali būti naudingas nedaugeliui, man pačiam jis yra itin vertingas ir palengvino tam tikrų duomenų apdorojimą. Skriptas yra skirtas apdoroti tekstinius failus, kuriuose pateikiama informacija apie komunalinius mokesčius, ir sukurti markdown ( .md ) failus su tinkamai formatuota informacija ‘dataview’ įskiepiui Obsidian programoje. Problemos aprašymas Turėjau tekstinius failus su informacija apie įvairius komunalinius mokesčius, kuriuos norėjau apdoroti ir perkelti į markdown formatą. Tekstiniai failai turėjo pavadinimus ir sumas, tačiau aš norėjau juos transformuoti į kitokį formatą bei pridėti keletą papildomų žymų ( tags ). Taip pat reikėjo pakeisti kai kuriuos pavadinimus į sutrumpintas versijas. Sprendimas Bash skriptas, kurį sukūriau, atlieka šiuos veiksmus: Skaito įvesties failus iš nurodyto katalogo. Naudoja reguliariąją išraišką ( regex

999 įdomūs faktai jūsų terminale su Bash scenarijumi

Vaizdas
  Kai paleidžiu pagrindinę funkciją, kuri aprašyta čia , vienoje vietoje tenka luktelėti, kol į Obsidian susikels reikalinga informacija iš interneto. Taigi tuo metu spėju paskaityti kokį nors įdomų faktą, nes ir šį scenarijų išsikviečiu būtent tada, kai tenka keliolika sekundžių panuobodžiauti. Kam skirtas šis scenarijus? Šis Bash scenarijus skirtas tiems, kurie mėgsta sužinoti naujų įdomių faktų. Scenarijus atsitiktinai parenka vieną eilutę iš jūsų pateikto teksto failo ir ją atspausdina. Tai gali būti naudinga, jei norite praplėsti savo žinias, atsipalaiduoti arba tiesiog praskaidrinti laukimo laiką dirbant su terminalu. Kaip veikia šis scenarijus? Scenarijus veikia labai paprastai. Jis naudoja kelias pagrindines bash komandas, kad atsitiktinai parinktų eilutę iš pateikto failo : Patikrina, ar failas egzistuoja. Suskaičiuoja eilučių skaičių faile. Pasirenka atsitiktinį eilutės numerį. Naudojant sed , atspausdina pasirinktą eilutę. Scenarijus:   #!/bin/

Skriptų dokumentavimas

  Įvadas Norėdamas pagerinti savo darbo efektyvumą ir sutaupyti laiko, sukūriau automatizuotą bash scenarijų, kuris padeda valdyti, tikrinti ir dokumentuoti kitus scenarijus. Šis scenarijus skirtas automatizuotai nuskenuoti visus .sh failus mano git kataloge, patikrinti jų aprašymus, URL ir naudojimą .bashrc ir .bash_aliases failuose, o rezultatus pateikti terminale ir išsaugoti Markdown formatu, kad galėčiau juos peržiūrėti Obsidian programoje.   #!/bin/bash # Description: Scenarijus, kuris rodo visus mano naudojamus scenarijus su aprašymais, web nuorodomis ir sąsaja su bashrc ir bash_aliases # URL: # Keičiame į git katalogą cd "$HOME/git" || exit # Sukuriame tuščią failą mano_skriptai.md : > "$HOME/Obsidian/notes/mano_skriptai.md" # ANSI spalvų kodai RED='\033[1;31m' GREEN='\033[1;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Ieškome .sh failų for file in *.sh; do # Ištraukiame scenarijaus pavadin

Pradėkime nuo pradžių: skriptas, kuris kuria skriptus

Vaizdas
  Kai pradėjau mokytis rašyti bash skriptus, greitai supratau, kad reikia sistemingo metodo. Kaskart kurdamas naują skriptą, turėdavau jį pavadinti, suteikti vykdymo teises, sukurti alias ir atidaryti redaktoriuje. Tai tapo rutina, ir kaip bet kuri rutina, ji prašėsi automatizavimo. Taip gimė mano pirmasis ir, ko gero, svarbiausias skriptas – skriptas, kuris kuria kitus skriptus. Versija 1: Klasikinis terminalas Pradėjau nuo klasikinio terminalo varianto. Štai skriptas, pavadintas create_script.sh : #!/bin/bash # Klausiame vartotojo failo pavadinimo read -p "Įveskite failo pavadinimą (be .sh plėtinio): " filename # Sukuriame failo kelią script_path="$HOME/git/${filename}.sh" # Sukuriame failą touch "$script_path" # Suteikiame vykdymo teises chmod +x "$script_path" # Sukuriame alias echo "alias $filename='$script_path'" >> "$HOME/.bash_aliases" # Perskaitome .bash_aliases failą iš naujo source

Failų įkėlimo scenarijus į file.io naudojant Bash ir cURL

Vaizdas
  Šiame įraše apžvelgsiu paprastą Bash scenarijų, kuris leidžia patogiai įkelti failus į “ file.io “ platformą. Scenarijus naudoja cURL įrankį failo siuntimui ir jq įrankį JSON atsakymui apdoroti. #!/usr/bin/env bash # Funkcija patikrinti interneto ryšį pingindama google.com checkInternet() { if ! ping -c 1 google.com &> /dev/null; then echo "Klaida: Nepavyko prisijungti prie interneto." return 1 fi } # Funkcija įkelti failą su eigos juosta uploadFile() { local localPath=$1 # Pakeisti neleistinus simbolius failo pavadinime pabraukimo brūkšniais fileName=$(basename "$localPath" | sed 's/[^a-zA-Z0-9._-]/_/g') # Patikrinti, ar failas egzistuoja if [ ! -f "$localPath" ]; then echo "Klaida: Failas nerastas - $localPath" return 1 fi # Patikrinti interneto ryšį if ! checkInternet; then return 1 fi # Gauti failo dydį fileSize=$(stat -c%s "$localPath") # Pradėti rodyti eigos juost

Pasirinktinio teksto įterpimo įrankis. Tik vienas shortcut!

Vaizdas
  Vieną ramų kažkurios dienos rytą, gurkšnodamas kavą ir be tikslo naršydamas Mastodon tinkle, užtikau diskusiją. Žmonės dalinosi savo produktyvumo patarimais, ir viena tema patraukė mano dėmesį: dažnai naudojamų teksto fragmentų valdymas. Daug kas skundėsi, kad nuolat rašo tuos pačius sakinius ar frazes – ar tai būtų mandagūs el. laiškų užbaigimo žodžiai, ar dažnai naudojamos kodo eilutės. Staiga supratau, kad ir pats susidūriu su šia problema. Kiek kartų per dieną rašau “Pagarbiai“ arba “Su geriausiais linkėjimais“ el. laiškuose? O kiek kartų įvedu savo kontaktinius duomenis ar tam tikras SQL užklausas? Per daug, kad skaičiuočiau. Būdamas Linux entuziastas ir mėgėjas automatizuoti viską, kas juda, nusprendžiau: reikia tai išspręsti. Ir taip gimė mano mažas, bet galingas įrankis – pasirinktinio teksto įterpimo scenarijus. Problemos esmė Prieš nerdamas į techninę dalį, apibrėžkime problemą: Dažnai naudojame tuos pačius teksto fragmentus. Šių fragmentų perr