Monthly Archives: January 2010

Palink Kaledų Stebūklas, kaip galima?


Taigi, mano siūlymas yra naudoti vieną skaitliuką visiems tinklapiams, kaip jumi į tai? Kas norite prisijungti prie mūsų ar basiūlyti mums jūsų skaitliuką, rašykite, susitarsime, beje štai mano skriptas: <script type=”text/javascript” src=”http://www.kaledustebuklas.lt/code.php?uid=916″></script>

Kai tik įdėjau skaitliuką į tinklapį, aš pamačiau, kad mano tinklapyje esantis skaitliukas nieko nesurinks… Todėl aš bandžiau ieškoti žmonių, kurie galėtų su manim pasidalinti, nei vienas jų man neatsiuntė savo skaitliuko kodo, taigi teko kelti savo skaitliuką.

„Mes juk naudojame Linux… hm… 🙂 reikia sukurti skriptą“, pasakė mano draugas. Na taip ir gimė skriptas paremtas crontab’u. Taigi nusikopijuokite skriptuką ir nupastinkite jį į ~/kaledustebuklas


#!/bin/bash

wget -q http://www.kaledustebuklas.lt/code.php?uid=916 -O /tmp/b

wget –delete-after `cat /tmp/b|sed -e ‘s/ /\n/g’|grep uid|sed ‘s/..$//g’|cut -d\’ -f2`

rm -f /tmp/b


Taigi įdėjus šį skriptuką į crontab’ą:


* */1 * * * wget http://www.kaledustebuklas.lt/code.php?uid=916 –delete-after -r -l 1 -np ; rm -rf www.kaledustebuklas.lt

* */1 * * * ~/kaledustebuklas


Beje, visa tai daroma tuo pačiu naudotoju 😉

P.S. aš pamiršau, kad reikia suteikti ~/kaledustebuklas skriptui exec teises, tai galime padaryti šia komanda:


chmod a+x ~kaledustebuklas


Ašiū!

Naudojamos komandos / programos:

  • crontab
  • bash
  • wget
  • grep
  • sed
  • rm

Network Monitoring using nTop

nTop įdiegimas Debian GNU/Linux lenny

Ši tinklo priežiūros programėlė jau yra debian repozitorijuose. Taigi parsisiunčiame ir susidiegiame: sudo aptitude install ntop ir sekančiu žingsniu turime įdiegti admin slaptažodį, tai padarome sudo ntop -A komanda.

Nustatymu peržiūra

Jeigu įdiegimo metu nebuvo išlindęs konfigo langas… įvykdykdome sudo dpkg-reconfigure, jei kas naudojasi ne debian pagrindu sukurta distribucija, tai anksčiau įvykdyta komanda sukuria userį kurio teisėmis veiks mūsų “Network Monitoring Software” ir tai kreivai… visteik tenkasudo chown ntop /var/lib/ntop -R && sudo chmod g+rw,o+rw /var/lib/ntop -R vykdyti… Peržiūrėkite bylą/etc/default/ntop, joje gali būti nuoroda į byla kurioje yra konfigas jūsų programėlės… ten dpkg-reconfigure sukonfigintas useris ir interfeisas guli… (bent pas mane). Aš dar rankurėmis ten įrašiau ,eth0,wimax0 vat… taigi dabar mano tas džiaugsmas atrodo:

USER="ntop"
INTERFACES="wlan0,eth0"
#INTERFACES="wlan0,eth0,wimax0"

O pirmasis konfigas atrodo:

# This file will normally include the debconf template but you can disable
# that and use this file only.

. /var/lib/ntop/init.cfg
#GETOPT=""

nTop paleidimas

Pirmą kartą paleidžiant reik BŪTINAI įvykdyti sudo ntop -A, šia komanda pridėsime admin naudotojo slaptažodį. Norėdami paleisti ntop įvykdome sudo /etc/init.d/ntop start

Naudojimasis

http://127.0.0.1:3000/ manau daugiau nereik nieko sakyt 😀

Munin

Nors man labiau patiko Munin

MySQL Forgot root password

Use the following procedure for resetting the password for any MySQL root accounts on Unix. The instructions assume that you will start the server so that it runs using the Unix login account that you normally use for running the server. For example, if you run the server using the mysql login account, you should log in as mysql before using the instructions. (Alternatively, you can log in as root, but in this case you must start start mysqld with the –user=mysql option. If you start the server as root without using –user=mysql, the server may create root-owned files in the data directory, such as log files, and these may cause permission-related problems for future server startups. If that happens, you will need to either change the ownership of the files to mysql or remove them.)

  • Log on to your system as the Unix mysql user that the mysqld server runs as.
  • Locate the .pid file that contains the server’s process ID. The exact location and name of this file depend on your distribution, host name, and configuration. Common locations are /var/lib/mysql/, /var/run/mysqld/, and /usr/local/mysql/data/. Generally, the file name has an extension of .pid and begins with either mysqld or your system’s host name.

You can stop the MySQL server by sending a normal kill (not kill -9) to the mysqld process, using the path name of the .pid file in the following command:

     shell> kill `cat /mysql-data-directory/host_name.pid`

Note the use of backticks rather than forward quotes with the cat command; these cause the output of cat to be substituted into the kill command.

  • Create a text file and place the following statements in it. Replace the password with the password that you want to use.
     UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
     FLUSH PRIVILEGES;

The UPDATE and FLUSH statements each must be written on a single line. The UPDATE statement resets the password for all existing root accounts, and the FLUSH statement tells the server to reload the grant tables into memory.

  • Save the file. For this example, the file will be named /home/me/mysql-init. The file contains the password, so it should not be saved where it can be read by other users.
  • Start the MySQL server with the special –init-file option:
     shell> mysqld_safe --init-file=/home/me/mysql-init &

The server executes the contents of the file named by the –init-file option at startup, changing each root account password.

  • After the server has started successfully, delete /home/me/mysql-init.

You should now be able to connect to MySQL as root using the new password.

Alternatively, on any platform, you can set the new password using the mysql client (but this approach is less secure):

  • Stop mysqld and restart it with the –skip-grant-tables option.
  • Connect to the mysqld server with this command:
 shell> mysql
  • Issue the following statements in the mysql client. Replace the password with the password that you want to use.
     mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
         ->                   WHERE User='root';
     mysql> FLUSH PRIVILEGES;

You should now be able to connect to MySQL as root using the new password.

OSI modelis

Idėja

OSI modelis aprašo 7 sluoksnius – funkcijų, naudojamų protokoluose, grupes. Kiekvienas sluoksnis naudojasi žemesnio sluoksnio paslaugomis ir teikia paslaugas aukščiau esančiam sluoksniui (pagal tradiciją, pirmas sluoksnis yra vaizduojamas apačioje). Kadangi bendravimas vyksta tik tarp gretimų sluoksnių, tai gerokai supaprastina sudėtingų komunikacijos sistemų kūrimą.

Lygių aprašymas

Fizinis

I lygis (Angl. Physical layer) – aprašo fizinius perduodamo signalo ir terpės, kuria jis perduodamas, parametrus (dažnius, moduliacijas, reikalavimus kabeliams, jungtims, duomenų vertimą į/iš fizinio signalo, etc.). Pagrindinė jo funkcija – atskirti 0 ir 1. Pvz.: UTP kabeliai ir kita fizinė tinklo įranga. Fizinis lygis specifikuoja elektrines, mechanines, procedūrines ir funkcines fizinio ryšio tarp sistemų charakteristikas. Pvz: įtampos lygiai, laikinės ch-os, maksimalus duomenų perdavimo ilgis, fizinės jungtys ir pan. Fizinis lygis ryšio kanalu perduoda dvejetainę informacijos seką tam tikru būdu. Ryšio kanalas – tai fizinės linijos ir aparatinės priemonės užtikrinančios informacijos perdavimą nuo vieno ryšio mazgo iki kito. Fizinė linija – tai erdvė arba medžiaga užtikrinanti signalo sklidimą. Pagrindinės ryšio kanalo charakteristikos, tai pralaidumas ir duomenų perdavimo patikimumas. Tinklo pralaidumas matuojamas ribiniu informacijos kiekiu (paprastai bitais), perduodamu kanalu per laiko vienetą. Duomenų perdavimo patikimumas – bito iškraipymo tikimybė perdavimo metu. Pagrindinė iškraipymo priežastis – įvairūs trikdžiai į ryšio liniją bei vidiniai duomenų perdavimo aparatūros triukšmai. Ryšio linijos dažnumų juosta F=fv-fa, nusako diapazoną tų dažnumų, kurie pradedant apatiniu fa ir baigiant viršutiniu fv, efektyviai perduodami ryšio linijoje.

Ryšio (kanalinis)

II lygis (Data link layer) – aprašo ryšį tarp gretimų (tiesiogiai bendraujančių) tinklo komponentų, pavyzdžiui, kadrų struktūrą. Pagrindinė funkcija – atskirti bitų sekas, jų pradžią, pabaigą. Pvz.: Ethernet. Ryšio lygis dar vadinamas duomenų ryšio lygiu (Data Link Layer), užtikrina duomenų transportą per fizinį ryšį. Ryšio lygis susietas su fiziniu adresavimu, tinklo topologija, klaidų notifikacija (pranešimus apie klaidas), paketų sutvarkymu ir duomenų srauto kontrole. Čia duomenis suskirstomi į freimus (Frame), aptinkamos ir ištaisomos perdavimo klaidos, nustatomi fiziniai adresai. Skirtingai nei kituose lygiuose duomenų freimas turi ne tik antraštę, bet ir freimo pabaigoje, kontrolinę sumą arba jos porūšį – CRC (Cyclic Redundancy Check – CRC), kuri suranda ir ištaiso informacijos perdavimo klaidas. Kontrolinė suma gali nustatyti duomenų iškraipymą arba praradimą.

Tinklo

III lygis (Network layer) – aprašo, kaip duomenų sekos turi būti perduodamos visame tinkle. Pvz.: IP. Atlieka kelio parinkimą tarp dviejų sistemų, kurios gali būti geografiškai skirtinguose potinkliuose. Šiuo atveju potinklis (Subnet) faktiškai yra vienas tinklo kabelis. Kadangi dvi sistemas gali skirti didelis atstumas ir daug potinklių, tai šis lygis atlieka maršrutizavimo uždavinį, t. y. parenka optimalų kelią tarp dviejų sistemų remiantis tam tikrais kriterijais. Suformavus kelią informacija perduodama per šį kelią. Plačiau apie maršrutizavimą bus kalbama kituose skyriuose.

Transporto

IV lygis (Transport layer) – tiekia skaidrų duomenų perdavimą tarp tinklo vartotojų su norimomis patikimumo garantijomis. Pvz.: TCP, UDP. Riba tarp sesijos ir transporto lygių gali būti traktuojama kaip riba tarp taikymo lygio protokolų ir žemutinio lygio protokolų. Viršutiniai trys lygiai yra susiję su taikomosiomis programomis, tuo tarpu žemutiniai lygiai susiję su duomenų perdavimu. Transporto lygis užtikrina patikimą duomenų siuntimą. Šiame lygyje atliekamas aukštesnių lygių taikomųjų programų segmentavimas ir išskyrimas į vieną bendrą transporto lygio duomenų srautą. Taip pat sukuriamas loginis ryšys tarp dviejų siuntimo taškų.

Sesijos

V lygis (Session layer) – aprašo duomenų apsikeitimo tarp galinių sistemų taisykles vienos jungties ribose. Pvz.: FTP protokolo komandų srautas arba duomenų srautas. Sesijos lygyje užmezgamos, valdomos ir nutraukiamos sesijos tarp taikomųjų programų. Šis lygis sinchronizuoja dialogą tarp atvaizdavimo lygių ir valdo jų duomenų mainus. Papildomai, be sesijų valdymo (užmezgimo, nutraukimo) turi išskirtinę teisę pranešti apie penkto, šešto ir septinto lygio problemas. Sesijos lygio protokolų pavyzdžiai: NFS, X-Window, RPC. Pieš užmezgant sesiją, abu komunikuojantys taškai turi suderinti ryšio parametrus, kaip greitis, klaidų kontrolė ir pan. Bet kuris iš galinių taškų gali pareikalauti pakeisti šiuos parametrus. Taip pat atlieka vartotojų identifikavimą.

Atvaizdavimo

VI lygis (Presentation layer) – nusako duomenų kodavimo sesijos metu taisykles. Pvz.: MIME. Užtikrina, kad informacija pasiųsta vienos sistemos taikymo lygio, būtų priimta kitos sistemos taikymo lygio. Atvaizdavimo lygyje atliekamas informacijos formato keitimas ir vertimas. Informacijos formato keitimas užtikrina, kad taikomoji programa gaus naudingą ir prasmingą informaciją, kurią galės apdoroti. Jei reikia, šiame lygyje atliekamas vertimas iš skirtingų duomenų formatų (pavyzdžiui, tekstinė informacija verčiama iš ASCII formato į EBCDIC formatą). Atvaizdavimo lygyje, gali būti atliekamas duomenų šifravimas taip apsaugant informaciją nuo neautorizuoto gavėjo. Informacija gali būti spaudžiama, verčiama į grafinius, vaizdo, garso formatus. Šiame lygyje atliekami ne tik vartotojo duomenų formato pakeitimai, bet ir duomenų struktūrų, kurias naudoja taikomosios programos, pakeitimai.

Taikymo (programų)

VII lygis (Application layer) – aukščiausias lygis, apibrėžiantis tinklo teikiamas paslaugas vartotojo programoms. Pvz.: telnet, FTP, IRC. Jis nuo kitų lygių skiriasi tuo, kad nėra servisas jokiam kitam OSI lygiui. Šis lygis apibrėžia taikomąsias programos, kurioms reikia siųsti informaciją tinklu, t. y. normaliam darbui reikalingi tinklo resursai. Jei taikomajai programai nereikalingas duomenų siuntimas, tai tinklo resursai jai nereikalingi ir ji nepriklauso šiam lygiui. Skiriamos tokios taikomųjų programų rūšys: tinklo taikomosios programos (network applications) ir tarptinklinės taikomosios programos (internetwork applications).

chmod mažas aprašas

Komanda

chmod parametrai /kelias/iki/bylos

Pavyzdžiai:

 /kelias/iki$ chmod 543 /kelias/iki/bylos
 /kelias/iki$ chmod g+w bylos
 /kelias/iki$ chmod o-x,u+x `pwd`/bylos
 /kelias/iki$ chmod 0001 ../iki/*

Parametrai

User bitas

Set Bito sk Bito pav File Directory

Group bitas

Set Bito sk Bito pav File Directory

Other bitas

Set Bito sk Bito pav File Directory

Specialusis bitas

Set Bito sk Bito pav File Directory
+t 1 Sticky Tradiciškai Sticky bit buvo naudojamas išsaugoti/išlaikyti exec failą atmintyje, šiais laikais atmintis yra pigi, todėl ši funkcija nėra svarbi. Sticky bit šiai dienai įtakoja tik katalogą. Kuomet papkei uždėtas Sticky bit, jis užtikrina tamtikroje papkėje sukurtus failus gali ištrinti tik naudotojas, kuris juos sukūrė (pvz, /tmp).
+s 2 UID UID naudojamas kai mes norime, kad mūsų sukurtas failas būtų įvykdytas failo kūrėjo teisėmis. UID naudojamas kai mes norime, kad mūsų sukurtas failas būtų išsaugotas papkėje ir turėtų file owner reikšmę tą pačią, kaip ir direktorija.
+s 4 GID GID naudojamas kai mes norime, kad mūsų sukurtas failas būtų įvykdytas failo grupės teisėmis. GID naudojamas kai mes norime, kad mūsų sukurtas failas būtų išsaugotas papkėje ir turėtų group owner reikšmę tą pačią, kaip ir direktorija.

vi redaktorius

STARTING vi

    vi filename    redaguoti byla vardu "filename"
    vi newfile     sukurti nauja byla vardu "newfile"

ENTERING TEXT

    i            įterpti tekstą iš kairės nuo žymeklio
    a            įterpti tekstą iš dešinės nuo žymeklio

MOVING THE CURSOR

    h            į kairę per simbolį
    j            į apačią
    k            į viršų
    l            į dešinę per simbolį

BASIC EDITING

    x         trinti simbolį už žymeklio
    nx        trinti n simbolių už žymeklio
    X         trinti simbolį prieš žymeklį
    dw        trinti žodį
    ndw       trinti n žodžių
    dd        iškirpti eilutę
    ndd       iškirpti n eilučių
    D         trinti simbolius nuo kursoriaus iki eilutės pabaigos
    r         pakeisti simbolį po žymekliu
    cw        pakeisti žodį
    ncw       pakeisti n žodžių
    C         keisti tekstą nuo žymeklio iki eilutės galo
    o         įterpti eilutę po žymekliu
                 (ready for insertion)
    O         įterpti eilutę virš žymeklio
                 (ready for insertion)
    J         join succeeding line to current cursor line
    nJ        join n succeeding lines to current cursor line
    u         undo last change
    U         restore current line

MOVING AROUND IN A FILE

    w            forward word by word
    b            backward word by word
    $            to end of line
    0 (zero)     to beginning of line
    H            to top line of screen
    M            to middle line of screen
    L            to last line of screen
    G            to last line of file
    1G           to first line of file
    <Control>f   scroll forward one screen
    <Control>b   scroll backward one screen
    <Control>d   scroll down one-half screen
    <Control>u   scroll up one-half screen
    n            repeat last search in same direction
    N            repeat last search in opposite direction

CLOSING AND SAVING A FILE

    ZZ            save file and then quit
    :w            save file
    :q!            discard changes and quit file

External Links

How to use the vi editor

interfaces

Konfigas

# /etc/network/interfaces — configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card – this entry was created during the Debian installation
## auto eth0
iface eth0 inet dhcp
pre-up /etc/init.d/ntp-server stop || true
up /etc/init.d/ntpdate restart || true
up /etc/init.d/ntp-server start || true

iface eth0-0 inet static
address 134.158.129.99
netmask 255.255.254.0
network 134.158.128.0
broadcast 134.158.129.255
gateway 134.158.128.1

iface eth0-2 inet static
address 192.168.1.160
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

iface eth0-3 inet static
address 192.168.1.7
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

iface adsl0 inet dhcp
pre-up /sbin/modprobe adiusbadsl
pre-up /usr/sbin/adictrl -i
pre-up /usr/sbin/adictrl -f
pre-up /usr/sbin/adictrl -d
pre-up /usr/sbin/adictrl -s

External Links

http://david.decotigny.free.fr/libre/ibook2-debian/etc/network/interfaces

Startup

Noredami patalpinti mūsų programą į startup, mes turime sukurti jai paleidžiamąjį skriptą kataloge /etc/init.d. Pvz:

sudo echo "echo Hello!" > /etc/init.d/mano

Tuomet suteikti jam exec teises:

sudo chmod +x /etc/init.d/mano

Iš šio katalogo bylos nėra startuojamos. Startuoja bylos iš katalogų /etc/rc*.d. Pažiūrėję į bylas esančias juose mes matome, kad tai yra tik simlinkai į bylas esančias /etc/init.d kataloge. Taip mes galime kurti nuorodas rankutem, bet tai būtų neracionalu, kadangi yra šaunus įrankisupdate-rc.d. Šio įrankio pagalba sukuriami rc nuorodos/skriptai.

# Start/Kill skaičius ir pavadinimas abėcėlės tvarka
S12acpid

Nurodo kas bus daroma su bylom kurios randasi /etc/init.d kataloge ir kokia tvarka. Taigi update-rc.d komanda sukuriam nuorodas mūsų paleidžiamąjam skriptui:

sudo update-rc.d mano

ir kaip matote jis sukūrė /etc/init.d kataloge esačiam skriptui paleidžiamas/sustabdančias programėles.