ssh trick

Am un setup care ruleaza niste scripturi in cron care iau niste fisiere dintr-o parte si le muta in alta (asta fiind varianta scurta). Fisierele sunt aduse de la distanta pe sistem.

Catch-ul cu asta e ca daca fac un scp si ma prinde cron-ul la jumate de transfer, se mucifica operatiile de dupa, ca o sa ajung sa am un fisier intr-o stare nu tocmai cunoscuta. Asta s-ar putea rezolva verificand cumva integritatea fisierului inainte de a incerca sa-l mut, insa mi s-a parut un pic peste mana (ca trebuie sa adaug si partea de integritate la fisier, sa verific ce si cum si parca e prea multa bataie de cap).

Partea buna in schimb e ca daca pe Linux (cred ca pe *NIX in general) vrei sa muti un fisier dintr-o parte in alta pe aceeasi partitie, operatia este atomica, asa ca solutia de a ma asigura ca fisierul ala fie a ajuns tot intr-un director sau nu, este:

ssh user@host "cat - > ~/file1 ; mv ~/file1 ~/work/file1"  < file1

Ce face treaba asta? Un cat peste o conexiune ssh si apoi muta fisierul scris initial in ~/ intr-un alt director numit ~/work.

Nu este chiar perfect pentru ca presupune ca ssh nu se strica in timp ce se transfera fisierul. Treaba asta insa se poate fixa send-side verificand codul de eroare intors de ssh care va fi non-zero daca orice din tot lantul ala de comenzi nu functioneaza si atunci poti sa mai bagi o fisa cu transferul.

Nu e cine stie ce descoperire, dar pot sa-mi fac treaba elegant :)

ms filetime & unix time

TIL despre FILETIME, adica cum tine Microsoft timpul.

FILETIME inseamna cate perioade de 100ns au trecut de la 1 Ianuarie 1601 pana la momentul asta si este pe 64 de biti, sa aiba loc sa bage timp :)

Formula de transformare in UNIX time, adica secunde trecute de la 1 Ianuarie 1970 pana acum este in felul urmator pentru o valoare a FILETIME de 130796482290000000:

EPOCH_DIFF = 116444736000000000
RATE_DIFF = 10000000
INTERMEDIATE_RESULT = (130796482290000000 - EPOCH_DIFF) / RATE_DIFF
RESULT = (INTERMEDIATE_RESULT * 1000)

Din RESULT se se iau primele zece cifre si rezulta UNIX TIME (epoch), adica 1435174629 care traduce in “Wed, 24 Jun 2015 19:37:09 GMT” (toate calculele se fac UTC).

expect

Azi mi-am stors creierii sa aflu de ce un script merge OK rulat din CLI dar din cron nu.

Scriptul meu facea niste operatii, dupa aia apela un script de expect care rula un scp si tot asa. Anyway, important era sa mearga scp-ul ala si sa mute un fisier dintr-o parte in alta.

Din CLI mergea de n-avea aer:

spawn scp $fisier user@server:/locatie
expect "Password:"
send "parola\r"

Din cron crapa cand cerea scp parola in mod subit.

Dupa dat cu capu de masa si de servere si un pic de cautat pe interneti am gasit varianta salvatoare:

spawn scp $fisier user@server:/locatie
expect "Password:"
send "parola\r"
expect 100%
sleep 5
exit

Banuiala mea e ca din cauza ca atunci cand ruleaza din cron n-are terminal, scp nu poa sa scrie pe undeva progresul de copiere si atunci moare dar fara sa chitaie de eroare, in schimb daca ii dau cu expect 100%, atunci cumva scrie intr-un fel de buffer al lui expect si nu se mai strica jucaria.

Asta din categoria cu ce-mi mai ocup eu timpul in ultima vreme: fac Frankensteini din bash, expect, sed, awk, python, perl si ce mai am pe la indemana :)

bias 2015

Azi am fost la Bucharest International Air Show 2015, tinut la Romaero Baneasa. Am ajuns acolo pe la 11 dupa ce am ocolit un pic ca era mama omorului pe drumul spre Aerogarii.

Am prins un demo de la niste romani care se numeau Romanian Hawks in avioane din alea cu elice pentru acrobatii.

Dupa asta a fost o reprezentatie a Turkish Stars, echipa de acrobatie a aviatiei militare turce. Astia au zburat in F-5 supersonice si au facut tot felul de combinatie misto printre care: inverted climb, mirrored flight low altitude (adica fix cum a fost faza aia din Top Gun cand unul zbura normal iar altul cu capul in jos deasupra aluilalt), zbor in diverse tipuri de formatii in timp ce faceau manevre sincron.

A urmat un demo cu un elicopter Bell AH-1 Cobra detinut de Red Bull Austria. Acrobatiile au insemnat zbor la joasa inaltime, mers cu spatele, zburat inainte cu elicile perpendiculare pe sol, tonouri si altele.

Dupa asta a urmat un numar de parasutisti profesionisti, iar unii din ei au avut steagul Romaniei atarnat de el/ea (ca erau si femei in formatie) si s-a vazut misto de tot pe cer.

Niste MiG-21 Lancer au urmat ca demo al Romanian Air Force. Partea buna e ca MiG-urile sunt zgomotoase, iar la altitudine mica par ca zboara mai repede decat o fac de fapt, au dat si cu flare-uri – asta fiind o premiera pentru mine sa le vad live dintr-un avion.

IAR Puma 330 SOCAT, tot de la Romanian Air Force, au facut demonstratii de zbor similare cu cele facut de Cobra.

Urmatoarea demonstratie a fost facuta de un Eurofighter Typhoon al Royal Air Force, care a inceput foarte misto. La modul toata lumea se uita la ultimii parasutisti in timp ce aterizau si “out of nowhere” a aprut pe sestache Eurofighter-ul si pe la jumatatea “scenei” a dat drumul la after burners si s-a dus repede de tot in sus. A facut looping-uri, inverted climb, banking dintr-o parte in alta si alte chestii de nu stiu cum sa le numesc oficial. Bun nenea pilotul. Pentru ca se pare ca nu aveau voie supersonic, ca sa fac zgomot, o faceau din after burners, ceea ce a oferit un spectacol vizual misto.

A urmat o evolutie scurta a IAR-99 Soim, avion folosit de romani mai mult pentru antrenament pe supersonice.

Un exercitiu combinat de politie aeriana cu neutralizare de teroristi la bord in combinatie cu SRI a urmat dupa Soim. Pe post de avion deturnat a fost un An-30, iar MiG-21 pe post de politisti zburatori care au convins “teroristii” ca trebuie sa aterizeze. Dupa asta, SRI-ul a intervenit la sol si a neutralizat “teroristii” si a salvat ostatecii.

Desi suna bine, exercitiul asta a fost complet dubios, la modul ca anti-tero de la SRI s-a parasutat langa avion, iar vreo doi ceva mai departe (cred ca erau aia de trebuiau sa faca ocol sa ia tigari si cafea). A urmat apoi coborare in rapel dintr-un elicopter a mai multor luptatori care au luat avionul cu asalt. N-am inteles de ce s-au parasutat cand erau si unii care puteau cobori in rapel – in ideea in care nu stiu, trebuiau sa vina de la distanta mare. Luarea cu asalt a avionului fara a sti cine unde e mi s-a parut iar foarte dubioasa.

A urmat un exercitiu de MedEvec, ca un pasager de pe avion fusese ranit.

Dupa o mica pauza a fost un exercitiu de parasutisti militari care au simulat o interventie in camp deschis impotriva unor transportoare blindate, cu sprijin al unor elicoptere de transport cu mini-tun pe ele pentru “close air support”. Cel mai cool a fost ca s-a tras cu munitie de manevra si chiar s-a auzit super calumea.

Tot pe fondul acestui exercitiu s-a simulat venirea unui elicopter MedEvec, incarcarea ranitilor, restul de militari au fost luati cu IAR 330 si au plecat fiecare la treaba lui (MedEvac la spital si soldatii la baza). La terminarea exercitiului, TAB-urile au facut parada si au salutat multimea.

Tot la capitolul “Search & Rescue” a fost facut un demo de salvarea a ranitilor cu elicopterul in zone greu accesibile: zbor la punct fix, coborat cu targa din elicopter cu troliu, incarcat ranitul, adus sus. Demonstratia a fost facuta de Ministerul de Interne cu un Mil Mi-17. La exercitiul asta am nimerit aproape de gardul de protectie si desi cred ca eram la vreo 100+m de locul exercitiului, simteam grupa mare aerul dat la o parte de elici, mai ales cand statea fix in aer.

A inceput sa ploua si am vazut asa un mic exercitiu de acrobatie cu F-16, printre care venit incet-incet spre public si after burner dupa pentru efect ;)

Ce speram sa vad da n-a fost pana la pauza, A-10 Thunderbolt, mai ales ca erau doua la sol cu ceea ce parea munitie de manrevra deja incarcata pe lantul spre minigun. In schimb m-am uitat la ele cu atentie la sol ca puteai sa te apropii linistit de ele ca nu erau restrictii.

Altfel, Pakistan Air Force a venit cu un Il-78. Nu stiu de ce, ca avioane supersonice nu aveau cu ei sa zici ca trebuiau mereu reincarcate pana inapoi in Pakistan. Impresionant avion.

Overall a fost super-OK, mai ales ca demonstratiile erau una dupa alta, nu aveai timp sa te plictisesti deloc.

In alta ordine de idei: pisa-l-as in gat la imbecilul si retardatul sinistru care a fost pe post de MC. Cat am stat acolo am fost pe modul Goosfraba. Era amuzant fix ca ruda aia retardata de o avem cu totii si de care nu putem scapa. Comenta parca era pe stadion la meci la tara. Am zis ca multe muie in directia lui? Cred ca era platit la sfarsit in functie de cate cuvinte a zis, ca altfel nu-mi explic de ce se baga peste prezentatorii straini, care au fost mega-profesionisti pe langa agariciul asta, futu-l in gat pe masa de cretin. Vorbea ca sa se auda pe el. Mama cat a putut sa ma enerveze. Si mai tare ma enerva ca fiecare tip de exercitiu avea muzica care trebuia si boxe erau peste tot, iar daca prostul satului tacea ar fi fost un show de exceptie. Dar nu, futu-i mortii lui, nu, a trebuit sa vorbeasca non-stop.

+6 luni

Luna asta am ratat vreo saptamana jumate de sala din cauza de treaba & shit. Ocazie cu care sper sa mi se repare si durerea de la o incheietura de o am de vreo doua luni. De cand am tras de motor am un deget semi-amortit si sper sa-si revina singur :) Adica inainte ma durea doar incheietura suficient de rau cat sa nu pot sa scutur mana, insa acum e un pic mai rau.

Am rarit-o la de 3 ori pe saptamana ca nu se mai putea in fiecare zi din cauza de oboseala, insa fac cam aproape acelasi efort ca si cand as face zilnic, insa ma simt mult mai bine si parca se vede mai bine rezultatul antrenamentului.