Certyfikacja w ipv6.he.net mieć codzienne testy, które dają 1 dodatkowy punkt po przejściu wszystkich podstawowych testów. Muszą być zrobione 100 takie testy dla maksymalnego wyniku 😐 . Same testy są całkowicie trywialne

  • Traceroute
  • TY AAAA
  • TY PTR
  • Świst
  • Kto jest

Najbardziej nieprzyjemną rzeczą jest to, że same testy muszą być unikalne, tzn. Nie można użyć jednej domeny dwa razy 🙂 Poza wszystkim są trochę irytujące 🙄 – nie ma wyzwania, tylko uderzenie 5 polecenia w cli i skopiuj / wklej wynik na swojej stronie.

Jako leniwy i administrator, który lubi ułatwiać sobie życie, szybko podrapałem elementarne uderzenie, które robi dla mnie brudną robotę.

#!/bin/bash

hr() {
  local start=$'\e(0' end=$'\e(B' line='qqqqqqqqqqqqqqqq'
  local cols=${COLUMNS:-$(tput cols)}
  while ((${#line} < cols)); do line+="$line"; done
  printf '%s%s%s\n' "$start" "${line:0:cols}" "$end"
}

if [ -z $1 ]
then
  echo "Append domain afert the script name!!!"
  exit
fi

IP=$(dig $1 AAAA +short)

if [ -z ${IP} ]
then
  echo "$1 dont have valid IPv6 record"
else
  reset
  traceroute6 $1
  hr
  dig $1 AAAA
  hr
  dig -x ${IP}
  hr
  ping6 -c3 ${IP}
  hr 
  whois ${IP}
fi

Jak widać, skrypt jest niesamowicie prosty. Prześlij domenę, a następnie zweryfikuj ją, aby sprawdzić, czy istnieje rekord IPv6, a jeśli tak, wykonaj dla niego codzienne testy. Najfajniejsza część – funkcjonować godz która drukuje linię na całej szerokości ekranu jest pobierana z hakerzy.

Jedną z rzeczy, która mnie najbardziej denerwuje, jest to, że kiedy kopiuję / przenoszę świetnego reżysera w cli, nie mam pojęcia, jaki procent całkowitego rozmiaru przewróciłem. Niestety cp / mv nie ma takich sił i musimy uciekać się do alternatyw. Istnieje wiele możliwości, ale osobiście podoba mi się użycie rsync zamiast pc / mv. Ma wszystko wbudowane – zachować prawa do plików i katalogów, pasek postępu, a także możliwość usuwania skopiowanych plików.

Ogólnie tak zrobiłem 2 alias, który wykonuje więcej niż cudowną pracę:

alias cpi='rsync -a --info=progress2'
alias mvi='rsync -a --info=progress2 --remove-source-files'

Dawno nie zajmowałem się kodowaniem i rzadko muszę wychwycić wszelkie zniekształcenia cli, które nie są zakodowane w UTF8. Dzisiaj musiałem szybko przejrzeć niektóre pliki i kiedy otworzyłem je prawie natychmiast, chciałem zrobić rm -rf w folderze, w którym były one zawarte, jakaś głupia osoba z połową komórki mózgowej postanowiła napisać swoje komentarze cyrylicą. Na szczęście nie super-admiralne siły rozwiązują to nieporozumienie natury 1 wiersz w cli:

iconv -f cp1251 -t utf8 old_shitty_encoded_file -o new_good_encoded_file

Myślę, że same flagi mówią same za siebie, ale rzućmy okiem na nie:

  • -o plik wyjściowy
  • -t do kodowania
  • -t do kodowania

iconv ma jeszcze jeden bardzo ładny dodatek, który potrafi transliterować (tam, gdzie to możliwe) ustawiając -t ASCII // TRANSLIT, ale niestety nie działa z cyrylicą 🙂

Z powodu niektórych (niezbyt jasne powody dla mnie) Zapomniałem zaktualizować demona postgresql w aktualizacji dystrybucji na jednym z moich serwerów Debian. Demon Postgresql ma tę zaletę, że nie zaczyna korzystać z nowej wersji (w przeciwieństwie do MySQL) dopóki nie będziemy przekonani, że nowy jest w pełni kompatybilny z premierą – niezwykle przydatne w dużych bazach danych. Sam proces aktualizacji jest ograniczony do następujących 2 kroki:

  • pg_dropcluster
  • pg_upgradecluster

Demon pg musi zostać zatrzymany przed opróżnieniem klastra!

pg_dropcluster 9.4 main

To polecenie mija szybko, następnie przechodzimy do zasadniczej części – sama aktualizacja

pg_upgradecluster 9.1 main
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Creating new cluster 9.4/main ...
config /etc/postgresql/9.4/main
data   /var/lib/postgresql/9.4/main
locale en_US.UTF-8
Flags of /var/lib/postgresql/9.4/main set as -------------e-C
port   5433
Disabling connections to the new cluster during upgrade...
Roles, databases, schemas, ACLs...
Fixing hardcoded library paths for stored procedures...
Upgrading database postgres...
Analyzing database postgres...
Fixing hardcoded library paths for stored procedures...
Upgrading database template1...
Analyzing database template1...
Fixing hardcoded library paths for stored procedures...
Upgrading database xpqt...
Analyzing database xpqt...
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Copying old configuration files...
Copying old start.conf...
Copying old pg_ctl.conf...
Copying old server.crt...
Copying old server.key...
Stopping target cluster...
Stopping old cluster...
Disabling automatic startup of old cluster...
Configuring old cluster to use a different port (5433)...
Starting target cluster on the original port...
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with

pg_dropcluster 9.1 main

Jeśli wszystko poszło gładko, powinieneś otrzymać komunikat podobny do powyższego, który zachęca do pozbycia się starych danych z pg.

pg_dropcluster 9.1 main

Na końcu tego tarpana możesz teraz ponownie rozpocząć proces. Dla mnie bazy są małe i niestety nie jestem w stanie oszacować, ile czasu zajmuje znacząca aktualizacja..

Dzisiaj musiałem uruchomić fsck na dużej macierzy RAID ~ 6 TB. W prędkości nie uruchomiłem fsck z opcją -C, aby pokazać mi postęp i po skromnym oczekiwaniu 2 godziny jestem trochę zmęczony, że nie wiem, jak daleko zaszła inspekcja. Fajną sztuczką dla już uruchomionego fsck do wizualizacji paska postępu jest:

kill -10 $(pidof fsck.ext3)

Po chwili zaczekasz ze mną 2-3 min pojawił się pasek postępu 49% (odrzutowiec) więcej 3 godziny oczekiwania 🙁

Podsumujmy, co robimy, wysyłamy sygnał SIGUSR1 co powoduje, że fsck wyświetla pasek postępu. Jeśli z jakiegoś powodu chcemy go zatrzymać, musimy go wysłać SIGUSR2 Lub

kill -12 $(pidof fsck.ext3)

Cóż, to nie jest coś bardzo skomplikowanego ani trudnego, tylko fajna sztuczka 🙂