Pranešimai

Bash skriptas akcijų informacijai gauti

Vaizdas
  Šiandien noriu pasidalinti įdomiu Bash skriptu, kuris naudoja nemokamą API iš https://site.financialmodelingprep.com/ svetainės (iki 250 užklausų per dieną), kurį pats naudoju savo kasdieninės informacijos pateikimo ir sistemos atsarginių kopijų funkcionalume. Šio API tikslas – gauti realaus laiko akcijų informaciją. Skripto funkcionalumas: Leidžia vartotojui pasirinkti akcijų simbolius, kuriems nori gauti informaciją. Galima paleisti su argumentu, nurodančiu konkretų akcijų simbolį, arba be argumento – tokiu atveju vartotojas gali rinktis akcijas iš pateikto sąrašo. Pateikia tokią informaciją kaip pavadinimą, biržą, naujausią kainą, kainos pokyčius ir kt. Kaip veikia skriptas: Įtraukiamas konfigūracijos failas su API URL ir raktu. Sukuriamas masyvas su numatytaisiais akcijų simboliais. Funkcija getConfiguredClient() patikrina, ar sistemoje yra įdiegta curl arba wget programa, reikalinga HTTP užklausoms vykdyti. Funkcija httpGet() naudoja šias programas užklau

Automatinis tekstinių failų apdorojimas ir sujungimas

  Įvadas Neseniai man prireikė specifinio scenarijaus, kuris leistų iš įvairių kataloguose esančių tekstinių (.txt) failų surinkti informaciją, sujungti ją į vieną Markdown (.md) failą, surūšiuoti ir pašalinti dublikatus. Ši užduotis reikalavo automatizavimo, kad būtų galima efektyviai apdoroti didelį kiekį duomenų. Todėl parašiau bash skriptą, kuris atliko šią užduotį puikiai. Kaip veikia scenarijus Šis scenarijus leidžia vartotojui pasirinkti katalogą iš $HOME aplanko ir pasirinkti, kurie tekstiniai failai turi būti sujungti. Visi pasirinkti failai yra apdorojami, kad būtų surinktos visos eilutės, kurios vėliau yra surūšiuojamos ir pašalinami dublikatai. Galutinis rezultatas yra išsaugomas kaip Markdown failas su tam tikromis metaduomenų žymomis. Scenarijaus veikimo žingsniai Katalogo pasirinkimas: Vartotojui pateikiamas sąrašas katalogų, esančių $HOME aplanke. Jei vartotojas nesirenka jokio katalogo ir tiesiog paspaudžia Enter , pasirenkamas numatyta

Metų progresijos vizualizavimas „Bash“ skriptuose

Vaizdas
  Prieš keletą dienų naršydamas Mastodone pastebėjau kažkieno pabūstintą įdomų paveiksliuką, kuriame buvo vizualiai atvaizduotas metų progresas procentais. Šis vaizdas mane įkvėpė sukurti paprastą „Bash“ funkciją, kurią galėčiau integruoti į savo kasdieninius skriptus. Ši funkcija man padeda stebėti metų progresą, rodyti jį terminalo lange ir naudoti įvairiuose backup bei informacijos išvedimo procesuose. #!/bin/bash # Description: Parodo metų progresą # URL: https://funkcijos.wordpress.com/2024/05/28/metu-progresijos-vizualizavimas-bash-skriptuose/ metu_progresas() { local bar_length=${1:-40} # Numatytoji juostos ilgis yra 40, jei nenurodytas kitas local filled_color="\e[1;33m" # Ryškiai geltona spalva užpildytiems simboliams local empty_color="\e[37m" # Balta spalva tuštiems simboliams local reset_color="\e[0m" # Numatytoji spalva # Gauti dabartinę dieną (metų dienos numeris) current_day=$(date +%-j) #

Ką užšifravome, tą iš iššifruosim

Vaizdas
 Iššifruojame užšifruotus failus: Naudingas scenarijus su patobulinimo idėjomis   Ankstesniame įraše , užšifravome svarbius failus naudodami gpg įrankį. Dabar atėjo laikas juos iššifruoti ir pasiekti turinį. Šiame įraše pristatysime scenarijų, kuris padės lengvai naršyti užšifruotus failus ir juos iššifruoti. Taip pat aptarsime galimus panaudojimo būdus, patobulinimus ir idėjas, kaip šį scenarijų pritaikyti savo poreikiams. Scenarijaus veikimas Scenarijus susideda iš trijų pagrindinių funkcijų: show_dirs() : Ši funkcija parodo visų katalogų, esančių jūsų namų aplanke, sąrašą. Galite pasirinkti bet kurį iš šių katalogų, kad pereitumėte prie jo. show_encrypted_files() : Pasirinkus katalogą, ši funkcija parodo visų jame esančių užšifruotų failų (su .gpg plėtiniu) sąrašą. Galite pasirinkti bet kurį iš šių failų, kad jį iššifruotumėte. decrypt_file() : Ši funkcija paprašys jūsų įvesti GPG rakto slaptažodį ir tada iššifruos pasirinktą failą. Sėkmingai iššifravus, faila

Automatizuotas failų archyvavimas ir siuntimas per Telegram

 Šiame įraše aptarsiu scenarijų, kuris automatiškai sukuria failų archyvą, užšifruoja jį GPG raktu ir išsiunčia per Telegram. Šis scenarijus gali būti naudingas norint reguliariai kurti atsargines failų kopijas arba dalintis jais su kitais saugiai. Reikalingas ir Telegram bot’as. Aš naudoju didesnių failų papildomam backupui. Kaip veikia scenarijus: Konfigūracijos failas: Scenarijus prasideda įkeliama konfigūracijos failu config.sh , kuriame saugomi du svarbūs parametrai: chat_id ir bot_token . Šie parametrai naudojami Telegram API bendravimui ir failų siuntimui. Dėl saugumo rekomenduojama šiuos parametrus saugoti atskirame faile, nepasiekiamame pašalininkams. Katalogo patikrinimas: Scenarijus patikrina, ar nurodytas katalogas egzistuoja ir ar jis yra tikras katalogas. Jei katalogas neegzistuoja arba nėra katalogas, scenarijus nutraukiamas. Laiko žymos sukūrimas: Sukuriama laiko žyma, kuri bus naudojama archyvo failo pavadinime. Tai leidžia lengvai atskirti skirtingus

Efektyvus konfigūracijos failų atsarginių kopijų valdymas naudojant etc_backup funkciją .bashrc faile

Įvadas Kaip seni programuotojai :D, puikiai suprantame atsarginių kopijų svarbą. Mūsų konfigūracijos failai /etc kataloge yra gyvybiškai svarbūs, todėl būtina turėti patikimą būdą juos saugoti ir atkurti. Šiame įraše pristatysiu mano naująją etc_backup funkciją, kurią įtraukiau į pagrindinę viskas funkciją .bashrc faile, ir aptarsiu, kaip ją naudoti bei kokius patobulinimus galima pridėti. Ką ir kodėl darome etc_backup funkcija sukurta tam, kad automatiškai ir patikimai sukurtų atsargines kopijas iš visų .conf failų /etc kataloge ir jo subkataloguose. Pagrindinės funkcijos ir pastebėjimai: Automatinis atsarginės kopijos katalogo kūrimas : backup_dir="$HOME/git/etc_backup/etc_backup_$(date +%F)" : Naudojame naudotojo namų katalogą ir sukuriame atsarginių kopijų katalogą su dabartinės datos žyme. log_file="$backup_dir/backup_log_$(date +%F).txt" : Kuriamas log failas, kuriame saugomi kopijavimo klaidų pranešimai. Konfigūracijų failų kopijav

Kaip efektyviai blokuoti reklamas macOS, Linux ir Windows: Automatizavimo scenarijus

  Neseniai internete radau straipsnį pavadinimu „ Kaip efektyviai blokuoti reklamas macOS, Linux ir Windows “. Tiksliau, jį radau vakar čia . Šis straipsnis pateikė nuoseklias instrukcijas, kaip rankiniu būdu modifikuoti hosts failą, kad būtų blokuojamos reklamos. Kadangi šią procedūrą kartais reikia kartoti, nusprendžiau automatizuoti procesą su Bash scenarijumi. Šiame įraše aprašysiu sukurtą scenarijų, jo funkcijas ir veikimą, taip pat pateiksiu keletą pastebėjimų ir idėjų, ką dar būtų galima pridėti ar pakeisti. Nors pavadinime minimos ir kitos sistemos, bet čia scenarijų pasidariau ir ištestavau su Linux. Debian GNU/Linux Scenarijaus funkcijos ir veikimas 1. Atsarginės hosts failo kopijos sukūrimas: Pirmasis scenarijaus veiksmas yra dabartinio hosts failo atsarginės kopijos sukūrimas. Tai labai svarbu, kad būtų galima grįžti prie pradinio failo, jei kažkas nepavyktų. sudo cp /etc/hosts /etc/hosts.backup Jei atsarginės kopijos sukurti nepavyksta, scenarijus

Funkcija atnaujinanti terminalo aplinką

  Šį kartą funkciją apžvelgia, komentuoja ir teikia pasiūlymus Gemini Kiekvienam programuotojui pažįstama situacija: įnešėte pakeitimų į scenarijų, paleidžiate jį, o rezultatas – ne tas, ko tikėjotės. Galbūt klaida? Atsijungiate nuo terminalo ir vėl prisijungiate, ir viskas veikia puikiai. Taip yra todėl, kad terminalas ne visada automatiškai atnaujina aplinką po to, kai pakeičiate konfigūracijos failus, pvz., .bashrc . Šią problemą išspręsti padeda paprasta funkcija:   function rs(){ source $HOME/.bashrc; echo "Atnaujinta" sleep 1 clear } Ką ji daro? Paleidžia source $HOME/.bashrc komandą, kuri atnaujina jūsų terminalo aplinką, įskaitant visus kintamuosius ir funkcijas, apibrėžtus .bashrc faile. Spausdina pranešimą “Atnaujinta“, kad žinotumėte, jog viskas pavyko. Naudoja sleep 1 komandą, kad palauktų vieną sekundę, kol pranešimas bus rodomas ekrane. Baigia funkciją clear komanda, kuri išvalo terminalo langą. Kam ši funkcija gali būti naudinga?

Viskas, ko reikia jūsų sistemai viename scenarijuje. bashrc funkcija

Vaizdas
 Šiandien mano scenarijų pristato ir komentuoja GPT-4o Automatizacija yra vienas iš kertinių IT specialistų įgūdžių, leidžiantis padaryti daugiau su mažiau pastangų. Šiame straipsnyje aptarsime vieną galingą bash scenarijų, kuris sujungia kelias svarbias užduotis į vieną, taip palengvinant kasdienį darbą. Pažiūrėkime, ką ši funkcija daro, kodėl ji yra naudinga ir ką dar būtų galima patobulinti. Funkcijos apžvalga Ši bash funkcija, pavadinta viskas() , yra skirta automatizuoti kelias dažnai atliekamas užduotis vienu metu. Štai ką ji daro: Orų prognozės išvedimas į failą : ./o.sh > "$HOME/Obsidian/notes/Oras.md" 2>/dev/null & Orų prognozė išvedama į failą foniniu režimu. Failų išskirstymas iš “Atsiuntimai“ katalogo : if ! ~/git/md.sh; then return 2 fi echo -e "OS: $(lsb_release -ds)" echo -e "Kernel: $(uname -r)" echo -e "Uptime: $(uptime -p)" Čia scenarijus i škviečia kitą scenarijų,

Atnaujinta terminalo lango spalvota orų programėlė

Vaizdas
 Atnaujinta 2024.05.19. Šiame variante sukuriamas asociatyvinis masyvas weather_translations , kurio raktai yra orų sąlygų pavadinimai, o reikšmės – jų vertimai. Funkcija get_weather_translation tiesiog ieško nurodytos orų sąlygos vertimo masyve. Jei vertimas nerastas, išvedamas pranešimas “Neatpažinta orų sąlyga“. Pridėtos ikonėlės ir spalvos. Pridėta informacija apie šios dienos vandens temperatūrą Baltijos jūroje. Github Sveiki! Šiandien papasakosiu apie atnaujintą savo orų programėlę, kuri veikia terminale. Pritaikiau ją rodyti išsamesnę informaciją ir patobulinau pateikimą. Naujasis orų programėlės kodas pasižymi ne tik išplėstomis funkcijomis, bet ir žymiai patobulintu profesionalumu bei aiškumu. Palyginus su ankstesne versija, kurią būtų galima vadinti mėgėjiška, šis variantas atspindi profesionalų požiūrį į programavimą. Kodo struktūra tapo aiškesnė ir lengviau suprantama, naudojant prasmingus pavadinimus ir komentarus. Efektyviai naudojami duomenų struktūro