Różnice pomiędzy wersjami 8 i 57 (Spinanie 49 wersji)
⇤ ← Wersja 8 z 2009-01-18 15:49:32 →
Rozmiar: 3025
Edytor: 67-moc-10
Komentarz:
← Wersja 57 z 2014-03-10 22:36:32 → ⇥
Rozmiar: 10929
Edytor: 89-68-183-139
Komentarz: przeniesione na fi.bsdserwis.com: podstrony czysto instalacyjne
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 4: Linia 4:
<<Navigation(children)>>
<<BR>><<BR>>
<<TableOfContents>>
Linia 7: Linia 11:
== Jednolinijkowce ==
Skrypty jednolinijkowe, aby szybko wykonać proste, lub bardziej złożone zadania.

=== Kopiowanie zdjęć dla fotografa ===
Skrypt do przeygotowania listy zdjęć do fotografa ma obecnie dwa tryby pracy: zwykły oraz z generowaniem poleceń dla DOSa:
{{{#!shell numbers=off

# plik wejsciowy danych jest przykładowy
#
# przygorowanie zdjęć do formatu wiki na dwie kolumny
#
perl prepfoto.pl /tmp/wtp/foto.list | lam -s, - - | sed -E 's/^,//;s/(,[0-9])P/\1,P/;'

# przygotowanie polecenia do okienka DOSowego
#
perl prepfoto.pl --cmd /tmp/wtp/foto.list
}}}

Wynik polecenia wklejamy do okienka DOSa:
{{{#!shell numbers=off
dir /s /b [... lista zdjec ...] > d:\photo\lista-zdjec.txt

# nastepnie kopiujemy znalezione pliki do katalogu roboczego
for /F "usebackq" %f in (`type d:\photo\lista-zdjec.txt`) do copy %f d:\photo\4-foto-papier\
}}}

Pozostaje tak przygotowane pliki przegrać na pendrive lub wypalić na płytę i odnieść do wywołania (wydrukowania) wszystkich zdjęć.
Linia 8: Linia 40:
z zachowaniem kolejności plików, np. przegranie czytanje bajki
{{{
z zachowaniem kolejności plików, np. przegranie czytanej bajki
{{{#!shell numbers=off
Linia 15: Linia 47:
{{{ {{{#!shell numbers=off
Linia 21: Linia 53:
{{{ {{{#!shell numbers=off
Linia 23: Linia 55:
[kopiowanie plików] # [kopiowanie plików]
Linia 29: Linia 61:
{{{ {{{#!shell numbers=off
Linia 35: Linia 67:
{{{ {{{#!shell numbers=off
Linia 37: Linia 69:
}}}

albo wersja mocno rozbudowana:
{{{#!shell numbers=off
for pkg in `pkg_info -E 'php5-*'`
do
     orig=`pkg_info -q -o $pkg`; new=`echo $orig| sed -e's/php5/php53/'`; portupgrade -f -m'DISABLE_CONFLICTS=1' -o $new $orig
done
Linia 41: Linia 81:
{{{ {{{#!shell numbers=off
Linia 47: Linia 87:
{{{#!shell numbers=off
ping -s <ADRES_IP> | tr : ^G (CTRL-V CTRL-G)
}}}

=== Poszukiwanie spamów w celu ich odblokowania ===
{{{#!shell numbers=off
find /var/virusmails/2008/12 -type f -exec egrep -i '(skanska.pl|arimgr.gov.pl|plk-sa.pl|pkpenergetyka.pl|warta.pl)' /dev/null {} \; | awk -F ":" '{print $1}' | sort -u
}}}
Jest to zdecydowanie szybciej, aniżeli przeglądanie logów serwera SMTP. Co prawda w logach można znaleźć więcej informacji o listach odrzuconych, zanim trafiły w ręce amavisd...

=== Przeładowanie stref nameda ===

Dla przykładu: w pliku konfiguracyjnym są tylko definicje stref typu slave. Chcemy zassać zmiany z master DNSa. Zatem mozna to szybciutko zrobić:
{{{#!shell numbers=off
cat include.conf.named | awk '/zone/ {print $2}' | tr -d '"' | xargs -n1 rndc reload
}}}
{i} W tym przykładzie strefy nie są umieszczone w widokach. Bo jakby były, to jest nieco inna składnia polecenia rndc.

=== Użyteczne dodatki do tcpdump ===
{{{#!shell numbers=off
tcpdump -l -n -Xx -s 1024 -tttt [_wyrazenie_podsluchu_]
}}}

=== Szybkie znalezienie plików, które trzeba ponownie dodać do RCS ===
{{{#!shell numbers=off
ls RCS/ | sed -e 's/,v//' | xargs -n1 ls -lF
}}}

=== Uruchomienie mtree w celu zrobienia zrzutu drzewa katalogów ===
{{{#!shell numbers=off
mtree -Pc -p /var/log -X /tmp/_var_log.exclude.mtree > _var_log.mtree
}}}
Zaś plik `/tmp/_var_log.exclude.mtree` zawiera<<FootNote(Plik exclude '''NIE MOŻE''' zawierać komentarzy.)>>:
Linia 48: Linia 121:
ping -s <ADRES_IP> | tr : ^G (CTRL-V CTRL-G)
}}}

=== Poszukiwanie spamów w celu ich odblokowania ===
*.[0-9]
*.gz
*.bz2
*.rar
}}}

=== Prosta konwersja, aby słowa były objęte ciapkami ===
Potrzebne do wygenerowania parserów dla !MoinMoin:
{{{#!shell numbers=off
cat /var/tmp/_builtin | perl -pe "s/(\b)/'\1/g;"
}}}

=== Przygotowanie poleceń dla Makefile ===
{{{#!shell numbers=off
 for f in `ls /bin/* /usr/bin/* /sbin/* /usr/sbin/*`; do cmd=` echo $f | sed -e 's!^.*/!!' | tr '[:lower:]' '[:upper:]'`; echo "$cmd?= $f"; done | sort
}}}

=== Wycięcie pustych linii z pliku ===
{{{#!shell numbers=off
ed - file <<< $'g/^$/d\nw'
}}}

=== Uruchomienie at ===
{{{#!shell numbers=off
at 8pm + 3 days
cat /var/tmp/kopernik-20100220.txt | mail -s "Zapisy na warsztaty familijne" warsztaty@kopernik.org.pl
^D
}}}

=== Gdy nie ma lynx lub links ===
{{{#!shell numbers=off
curl -G http://localhost/server-status?auto
}}}

=== Kopiowanie struktury katalogów za pomocą cpio ===
{{{#!shell numbers=off
find /var/ftpd/aqq -depth -print | cpio -pamVd /var/ftp/nowy-katalog
}}}

=== Zamiana tekstu na HTML ===
Potrzebne było przetworzenie tekstu (''plain text'') na postać HTMLową, aby ładnie prezentowało się po wklejeniu w edytorze Allegro. Wykorzystany jest program z ports, który takie coś wykonuje (skrypt PERLowy):
{{{#!shell numbers=off
txt2html --eight_bit_clean --bold_delimiter % --infile /home/var/tmp/_allegro.txt
}}}
Więcej opcji i możliwości zapisano w manualu.

=== Oczyszczenie plików JPEG z EXIF ===
{{{#!shell numbers=off
# --- najpier wyczyszczenie nagłówków totalnie ------------------
jhead -purejpg -norot *.JPG

# --- dodanie nagłówków EXIF, ale tylko z datą (na podstawie daty utworzenia pliku) ---
jhead -mkexif -norot *.JPG
}}}

=== Dodanie watermarka do pliku za pomocą ImageMagick ===
{{{#!shell numbers=off
for f in `ls *.jpg`; do composite -gravity SouthEast -dissolve 15 ../wtp3.png $f $f; done
# --- albo bardziej hardcore -----------
for g in Center SouthWest NorthEast; do foto.watermark -g $g `find ./ -type f -name '*.jpg' -mtime -+2d`; done
}}}

Więcej można znaleźć w poniższych linkach:
 * http://www.selonen.org/arto/netbsd/watermarks.html
 * http://www.waltercedric.com/joomla-mainmenu-247/303-how-to/1668-watermarking-your-images-with-imagemagick.html
 * http://www.imagemagick.org/script/composite.php

=== Przeniesienie baz RRD pomiędzy architekturami ===
RRDtool nie potrafi poradzić sobie z formatem pomiędzy różnymi architekturami (wersja OS, x32, x64). Dlatego jest prosty sposób na przeniesienie baz. Na serwerze źródłowym:
{{{#!shell numbers=off
rrdtool dump filename.rrd filename.xml
}}}

Na serwerze docelowym (przyczym plik filename.rrd nie może istnieć):
{{{#!shell numbers=off
rrdtool restore filename.xml filename.rrd -r
}}}

I już. Załatwione.

== Programistyczne ==

=== Ustawienie poprawnego połączenia do mySQL ===
Chodzi głównie o kodowanie PL ogonków. Jeżeli domyślne wartości podczas instalacji pokrywają się z wymogami aplikacji, to nie ma problemu. Ale jak jest serwer typu VPS, to nie można na serwerze wymusić kodowania potrzebnego do aplikacji. Dlatego też:
{{{#!php numbers=off
<?php
 
$link = mysql_connect('localhost', 'root', '','');
IF (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_query('SET character_set_connection=utf8_polish_ci');
mysql_query('SET character_set_client=utf8_polish_ci');
mysql_query('SET character_set_results=utf8_polish_ci');
mysql_query(' SET NAMES utf8 ');
mysql_select_db('baza', $link);
 
?>
}}}

=== Tablica asocajcyjna w SHell-u ===
{{{#!shell numbers=off
name="$1"
_pidfile=$(echo "$(eval echo \$${name}_pidfile)")
}}}

=== Getopt w SHell-u ===
{{{#!shell numbers=off
# --- pobranie argument/ow skryptu ---------------------------------------
#
args=`getopt dv $*`

set -- $args
for i
do
        case "$i"
        in
                -v)
                        _virtual=1
                        shift;;

                --)
                        shift; break;;
        esac
done
}}}

== Ciekawe narzędzia FreeBSD ==

=== Włączenie klawiatury USB dla Single User Mode ===
{{{#!shell numbers=off
echo hint.atkbd.0.flags="0x1" >> /boot/loader.conf
echo ukbd_load="YES" >> /boot/loader.conf
}}}
Dla wersji 9.x działa następujący sposób (dla serwera Supermicro)
Linia 53: Linia 257:
find /var/virusmails/2008/12 -type f -exec egrep -i '(skanska.pl|arimgr.gov.pl|plk-sa.pl|pkpenergetyka.pl|warta.pl)' /dev/null {} \; | awk -F ":" '{print $1}' | sort -u
}}}
Jest to zdecydowanie szybciej, aniżeli przeglądanie logów serwera SMTP. Co prawda w logach można znaleźć więcej informacji o listach odrzuconych, zanim trafiły w ręce amavisd...

=== Przeładowanie stref nameda ===

Dla przykładu: w pliku konfiguracyjnym są tylko definicje stref typu slave. Chcemy zassać zmiany z master DNSa. Zatem mozna to szybciutko zrobić:
# --- /boot/loader.conf ------------------------------------------
#
kbdmux_load="YES"
hint.atkbdc.0.at="isa"
hint.atkbdc.0.port="0x060"
hint.atkbd.0.at="atkbdc"
hint.atkbd.0.irq="1"
}}}
Dzięki temu można w SUM mieć klawiaturę.


=== Sklejenie jednej kolumny w linie wielokolumnowe ===
{{{#!shell numbers=off
cat plik | lam - - -
cat plik | paste -s -d ' ' -
}}}

=== Szybkie tworzenie galerii z katalogów ===
Zainstalowane z ports. Narzędzie do tworzenia galerii obrazków:

{{{#!shell numbers=off
/usr/local/bin/igal2.sh <DIRECTORY>
}}}

=== Dodanie własnego favicon.ico dla strony ===
Gdy potrzeba "nadpisać" ustawienia apache'a w celu ustalenia własnego favicon.ico
Linia 61: Linia 284:
cat include.conf.named | awk '/zone/ {print $2}' | tr -d '"' | xargs -n1 rndc reload
}}}
{i} W tym przykładzie strefy nie są umieszczone w widokach. Bo jakby były, to jest nieco inna składnia polecenia rndc.
<link href="/portalwiedzy184/my-icon.ico" rel="SHORTCUT ICON" />
}}}

== Podstrony ==
 * /AdministratorkaUnix
 * /GotowcePython - różne gotowce związane z programowaniem w [[http://www.python.org|Python]]

== Ciekawe linki zewnętrzne ==
 * [[http://www.proxyserverprivacy.com/ipaddress_range.php|Przypisanie adresów IP do krajów|target="_blank"]]
 * [[http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html|Kurs vi(m)-a oraz ściągawka|target="_blank"]]
 * [[http://42.pl/pl/networks.html?html=1|Lista IPv4 przypisanych do Polski|target="_blank"]]
 * [[http://www.porady.org/problem-z-usb-windows-vista-usb-device-not-recognized/|Windows Vista i problem portów USB|target="_blank"]]
Linia 66: Linia 298:
{*} To z kategorii FreeBSD. {*} To z kategorii FreeBSD. I nie tylko.



Tips & Tricks

Różne krótkie sztuczki, aby szybko potem zrobić proste zadania.

Jednolinijkowce

Skrypty jednolinijkowe, aby szybko wykonać proste, lub bardziej złożone zadania.

Kopiowanie zdjęć dla fotografa

Skrypt do przeygotowania listy zdjęć do fotografa ma obecnie dwa tryby pracy: zwykły oraz z generowaniem poleceń dla DOSa:

# plik wejsciowy danych jest przykładowy
#
# przygorowanie zdjęć do formatu wiki na dwie kolumny
#
perl prepfoto.pl /tmp/wtp/foto.list | lam -s, - - | sed -E 's/^,//;s/(,[0-9])P/\1,P/;'

# przygotowanie polecenia do okienka DOSowego
#
perl prepfoto.pl --cmd /tmp/wtp/foto.list

Wynik polecenia wklejamy do okienka DOSa:

dir /s /b [... lista zdjec ...] > d:\photo\lista-zdjec.txt

# nastepnie kopiujemy znalezione pliki do katalogu roboczego
for /F "usebackq" %f in (`type d:\photo\lista-zdjec.txt`) do copy %f d:\photo\4-foto-papier\

Pozostaje tak przygotowane pliki przegrać na pendrive lub wypalić na płytę i odnieść do wywołania (wydrukowania) wszystkich zdjęć.

Kopiowanie MP3 pod MS Windows

z zachowaniem kolejności plików, np. przegranie czytanej bajki

FOR /F "usebackq" %f IN (`dir . /B /O:N`) DO copy %f E:\_katalog

TAGowanie plików MP3

Niektóre odtwarzacze mp3 (np. telefon Nokia) odtwarza pliki muzyczne tylko i wyłącznie po tag-ach mp3, np. artysta, rodzaj muzyki, album etc. Jeżeli mp3 powstał z płyty CD, to tagi w takich mp3 są kompletnie puste. Ale można sobie poradzić. Oto przykład dla plików, których nazwa zawierała tytuł utworu:

ls *.mp3 | perl -ne 'chomp; $f=$_;s/\.mp3$//;s/^[0-9]{2}_//;s/_/ /g; print "audiotag -a \"_ARTYSTA_\"  -y _YYYY_ -A \"_ALBUM_\" -g \"_RODZAJ_MUZYKI_\" -t \"$_\" $f\n";' | sh

Montowanie USB flash pod FreeBSD

Z lokalizacją dla pl_fonts

mount_msdosfs -L pl_PL.ISO8859-2 -D cp852 /dev/da0s1 /mnt/usb/
# [kopiowanie plików]
umount /mnt/usb

Uruchamianie unison

unison to narzędzie pozwalające na ręczną synchronizację katalogów w systemie lokalnym oraz zdalnym (synchornizacja może się odbywać w obydwie strony). Używam głównie do dystrybucji skryptów administracyjnych po serwerach.

unison ~/scripts/ ssh://fw.wtp3.org/cvs/unison/

Reinstalacja portu z jednoczesną zamianą na inny równoważny

Zaistniała konieczność zmiany portu security/openssl-stable na security/openssl. Ale konieczne było zrobić to bez "zgubienia" wszystkich zależności. W związku z tym wystaczy wydać polecenie:

portupgrade -f -o security/openssl openssl-stable

albo wersja mocno rozbudowana:

for pkg in `pkg_info -E 'php5-*'`
do
     orig=`pkg_info -q -o $pkg`; new=`echo $orig| sed -e's/php5/php53/'`; portupgrade -f -m'DISABLE_CONFLICTS=1' -o $new $orig
done

Informacja o zainstalowanych portach pasującyh do wzorca

Uzyskamy informację o zainstalowanych portach, których nazwy zawierają podany ciąg znaków. Wraz z krótką informacją o danym porcie.

pkg_info -Ix sasl

Przydatny ping przy rekonfiguracji topologi sieci

Konsola daleko, a trzeba znaleźć kabelek na switchu, czy patch-panelu:

ping -s <ADRES_IP> | tr : ^G                             (CTRL-V CTRL-G)

Poszukiwanie spamów w celu ich odblokowania

find /var/virusmails/2008/12 -type f -exec egrep -i '(skanska.pl|arimgr.gov.pl|plk-sa.pl|pkpenergetyka.pl|warta.pl)' /dev/null {} \; | awk -F ":" '{print $1}' | sort -u

Jest to zdecydowanie szybciej, aniżeli przeglądanie logów serwera SMTP. Co prawda w logach można znaleźć więcej informacji o listach odrzuconych, zanim trafiły w ręce amavisd...

Przeładowanie stref nameda

Dla przykładu: w pliku konfiguracyjnym są tylko definicje stref typu slave. Chcemy zassać zmiany z master DNSa. Zatem mozna to szybciutko zrobić:

cat include.conf.named | awk '/zone/ {print $2}' | tr -d '"' | xargs -n1 rndc reload

{i} W tym przykładzie strefy nie są umieszczone w widokach. Bo jakby były, to jest nieco inna składnia polecenia rndc.

Użyteczne dodatki do tcpdump

tcpdump -l -n -Xx -s 1024 -tttt  [_wyrazenie_podsluchu_]

Szybkie znalezienie plików, które trzeba ponownie dodać do RCS

ls RCS/ | sed -e 's/,v//' | xargs -n1 ls -lF

Uruchomienie mtree w celu zrobienia zrzutu drzewa katalogów

mtree -Pc -p /var/log -X /tmp/_var_log.exclude.mtree > _var_log.mtree

Zaś plik /tmp/_var_log.exclude.mtree zawiera1:

*.[0-9]
*.gz
*.bz2
*.rar

Prosta konwersja, aby słowa były objęte ciapkami

Potrzebne do wygenerowania parserów dla MoinMoin:

cat /var/tmp/_builtin | perl -pe "s/(\b)/'\1/g;"

Przygotowanie poleceń dla Makefile

 for f in `ls /bin/* /usr/bin/* /sbin/* /usr/sbin/*`; do cmd=` echo $f | sed -e 's!^.*/!!' | tr '[:lower:]' '[:upper:]'`; echo "$cmd?=           $f"; done | sort

Wycięcie pustych linii z pliku

ed - file <<< $'g/^$/d\nw'

Uruchomienie at

at 8pm + 3 days
cat /var/tmp/kopernik-20100220.txt | mail -s "Zapisy na warsztaty familijne" warsztaty@kopernik.org.pl
^D

curl -G http://localhost/server-status?auto

Kopiowanie struktury katalogów za pomocą cpio

find /var/ftpd/aqq -depth -print | cpio -pamVd /var/ftp/nowy-katalog

Zamiana tekstu na HTML

Potrzebne było przetworzenie tekstu (plain text) na postać HTMLową, aby ładnie prezentowało się po wklejeniu w edytorze Allegro. Wykorzystany jest program z ports, który takie coś wykonuje (skrypt PERLowy):

txt2html --eight_bit_clean --bold_delimiter % --infile /home/var/tmp/_allegro.txt

Więcej opcji i możliwości zapisano w manualu.

Oczyszczenie plików JPEG z EXIF

# --- najpier wyczyszczenie nagłówków totalnie ------------------
jhead -purejpg -norot *.JPG

# --- dodanie nagłówków EXIF, ale tylko z datą (na podstawie daty utworzenia pliku) ---
jhead  -mkexif -norot *.JPG

Dodanie watermarka do pliku za pomocą ImageMagick

for f in `ls *.jpg`; do composite -gravity SouthEast -dissolve 15 ../wtp3.png $f $f; done
# --- albo bardziej hardcore -----------
for g in Center SouthWest NorthEast; do foto.watermark -g $g `find ./ -type f -name '*.jpg' -mtime -+2d`; done

Więcej można znaleźć w poniższych linkach:

Przeniesienie baz RRD pomiędzy architekturami

RRDtool nie potrafi poradzić sobie z formatem pomiędzy różnymi architekturami (wersja OS, x32, x64). Dlatego jest prosty sposób na przeniesienie baz. Na serwerze źródłowym:

rrdtool dump filename.rrd filename.xml

Na serwerze docelowym (przyczym plik filename.rrd nie może istnieć):

rrdtool restore filename.xml filename.rrd -r

I już. Załatwione.

Programistyczne

Ustawienie poprawnego połączenia do mySQL

Chodzi głównie o kodowanie PL ogonków. Jeżeli domyślne wartości podczas instalacji pokrywają się z wymogami aplikacji, to nie ma problemu. Ale jak jest serwer typu VPS, to nie można na serwerze wymusić kodowania potrzebnego do aplikacji. Dlatego też:

<?php
 
$link = mysql_connect('localhost', 'root', '','');
IF (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_query('SET character_set_connection=utf8_polish_ci');
mysql_query('SET character_set_client=utf8_polish_ci');
mysql_query('SET character_set_results=utf8_polish_ci');
mysql_query(' SET NAMES utf8 ');
mysql_select_db('baza', $link);
 
?>

Tablica asocajcyjna w SHell-u

name="$1"
_pidfile=$(echo "$(eval echo \$${name}_pidfile)")

Getopt w SHell-u

# --- pobranie argument/ow skryptu ---------------------------------------
#
args=`getopt dv $*`

set -- $args
for i
do
        case "$i"
        in
                -v)
                        _virtual=1
                        shift;;

                --)
                        shift; break;;
        esac
done
ERROR: EOF in multi-line statement

Ciekawe narzędzia FreeBSD

Włączenie klawiatury USB dla Single User Mode

echo hint.atkbd.0.flags="0x1" >> /boot/loader.conf
echo ukbd_load="YES" >> /boot/loader.conf

Dla wersji 9.x działa następujący sposób (dla serwera Supermicro)

# --- /boot/loader.conf ------------------------------------------
#
kbdmux_load="YES"
hint.atkbdc.0.at="isa"
hint.atkbdc.0.port="0x060"
hint.atkbd.0.at="atkbdc"
hint.atkbd.0.irq="1"

Dzięki temu można w SUM mieć klawiaturę.

Sklejenie jednej kolumny w linie wielokolumnowe

cat plik | lam - - -
cat plik | paste -s -d ' ' -

Szybkie tworzenie galerii z katalogów

Zainstalowane z ports. Narzędzie do tworzenia galerii obrazków:

/usr/local/bin/igal2.sh <DIRECTORY>

Dodanie własnego favicon.ico dla strony

Gdy potrzeba "nadpisać" ustawienia apache'a w celu ustalenia własnego favicon.ico

<link href="/portalwiedzy184/my-icon.ico" rel="SHORTCUT ICON" />

Podstrony

Ciekawe linki zewnętrzne


{*} To z kategorii FreeBSD. I nie tylko.

  1. Plik exclude NIE MOŻE zawierać komentarzy. (1)

TipsTricks (ostatnio edytowane 2015-06-19 03:41:55 przez 85-222-12-229)