Hirdetés

SQLite szösszenetek

Főbb tudnivalók az SQLite -ról. Magamnak, hogy meglegyen és ne kelljen mindig googlizni

SQLite.org

SQLite rules

1. Each command ends with a semi-colon (parancs végén pontos vessző)
2. There are 3 types of values
a. String literals, which are characters surrounded almost always with single quotes
b. Numeric literals, which are numbers of any type without quotes
c. Binary literals are numbers represented as hexidecimals

3. There are 5 types in SQLite
a. integer
b. real
c. text
d. blob
e. null

4. To use single quotes in a string add 2 in a row rather then one ''
5. Single line comments start with 2 lines --
6. Multiline comments start with /* and end with */
7. SQL is case insensitive
8. Each table can have only one primary key

Easter Egg a Jófogáson

Avagy az elrejtett tetris előcsalása.
Nincs is más teendőnk csak bármilyen input mezőbe (kereső, üzenet küldő...) gépeljük be, hogy tetris és már potyognak is a 4 eleműek.

Jó szórakozást!

Vigyázat, erősen addiktív tud lenni! Mindenki csak saját felelősségére próbálja ki! :DDD

Multiple ssh

dsh - Dancer's shell / Distributed shell

install
sudo apt-get install dsh
Főbb kapcsolók
-a All machines
-g servers Use the group servers
-c Use concurrent connections
-w Wait for one machine to finish before moving onto next
-v Verbose output
-M Show machine name, useful with -c

Az alábbi módon tudunk kapcsolódni a hostokhoz és parancsot futtatni:
dsh -m host1 -m host2 -m host3... command
példa:
dsh -w -m gepnev -m root@192.168.1.1 uptime
gepnev: 12:43:34 up 595 days, 4:29
root@192.168.1.1: 12:43:34 up 595 days, 4:29

(note it: ha csak gépnevet írunk akkor az ssh-nak megfelelően a saját userünkkel kapcsolódunk)
-w : sorban futtatja a parancsokat minden egyes host-on

Lehetőség van csoportok létrehozására is
/etc/dsh/group
~/.dsh/group
touch ~/.dsh/group/myfirstgroup
nano ~/.dsh/group/myfirstgroup
root@192.168.1.1
myrouter
sonar@10.222.333.44

python tippek tricks

Mindenféle csuda kiegészítő:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

os.path
exists(),isdir(),isfile()
Ezek a függvények követik a symlinkeket, tehát ha fontos, hogy a kapott file elérési út valós-e
és nem egy linkről van szó. akkoor igy tudjuk leellenőrizni
if isfile(path) and not islink(path)

lexists() - symlinkre True-t ad vissz
-------------------------------------------------------
Manipulating paths
basename() - a path utolsó könyvtárát adja vissza
>>> os.path.basename ("d:\\down\\linux")
'linux'
dirname() - path-basename -t adja vissza
>>> os.path.dirname ("d:\\down\\linux")
'd:\\down'

>>> os.path.isabs ("down\\linux")
False
>>> os.path.isabs ("d:\\down\\linux")
True

abspath() - a normalizált path-ot adja vissza
>>> os.path.abspath ("down\\linux")
'C:\\Python25\\down\\linux'

-------------------------------------------------------
Building paths

OpenWRT tplink 1043 WiFI on/off QSS gomb

Wifi ki be kapcsolása QSS gombbal
Az /etc/hotplug2.rules — fileban törölni a '^' jelet 'button' elől
nano /etc/hotplug2.rules
$include /etc/hotplug2-common.rules

SUBSYSTEM ~~ (^net$|^input$|button$|^usb$|^ieee1394$|^block$|^atm$|^zaptel$|^tty$) {
exec /sbin/hotplug-call %SUBSYSTEM%
}

DEVICENAME == watchdog {
exec /sbin/watchdog -t 5 /dev/watchdog
next-event
}

Az alábbi kódrészletet másoljuk bele a /etc/hotplug.d/button/buttons -ba
nano /etc/hotplug.d/button/buttons
#!/bin/sh
#wifi on/off by QSS button
#/etc/hotplug.d/button/buttons
if [ "$BUTTON" = "wps" ] ; then
if [ "$ACTION" = "pressed" ] ; then
SW=`ifconfig wlan0 | wc -l`
if [ "$SW" == "7" ] ; then
echo 0 > /sys/class/leds/tp-link\:green\:qss/brightness
else
echo 1 > /sys/class/leds/tp-link\:green\:qss/brightness
echo timer > /sys/class/leds/tp-link\:green\:qss/trigger
echo 3000 > /sys/class/leds/tp-link\:green\:qss/delay_off
echo 2000 > /sys/class/leds/tp-link\:green\:qss/delay_on
fi
if [ "$SW" == "7" ] ; then wifi down; fi
if [ "$SW" == "0" ] ; then wifi up; fi
fi
fi

Ha mindent jól csináltunk akkor a QSS gomb megnyomása után a WiFi ki/be kapcsol

SSH Tunnel

Tunnel készitése

ssh -L 1080:example.com:80 username@host -f
-L : port forward
1080 : local gép portja (1024-es port fölött root jog nélkül lehet használni)
80 : server oldalon melyik porton menjen ki a forgalom
-f : go background
most ha a böngészőbe beirjuk, hogy http://localhost:1080 akkor az example.com fog bejönni

Reverse tunnel
ezt kell futtatni a serveren
ssh -R 1080:internal.example.com:80 laptop-user@laptop -f
-R : remote or reverse tunnel
1080: local port ahonnan várja a csatlakozást
majd a laptopról csatlakozni kell, javasolt, hogy instaláljuk az autossh-t, hogy a kapcsolat életben maradjon.
autossh -M 20000 -f 1080:internal.example.com:80 laptop-user@laptop
-M 20000 : egy olyan port kell amit semmi nem használ, és ezen keresztül tarja fent a kapcsolatot

Dynamic tunnels
A pontos port definiálás helyett a dinamikus tunnel lehetővé teszi ezt egy from porton
ssh -D 1080 pi-user@pi
-D : egy lokál portot kell definálni
Ezután bármelyik program amelyik támogatja a SOCKS proxy-kat tudjuk használni a tunnelünkön keresztül.
Pl.: Firefox > Preferences > Advanced > Network
Manual Proxy configuration, > SOCKS host: 127.0.0.1 Port: 1080
ha mindent jól csináltunk akkor a firefox forgalma az ssh-n keresztül fog menni.
Próba képpen zárjuk le az ssh kapcsolatot és úgy próbáljuk meg a Firefox-szal böngészni. Ha jól csináltuk akkor page not found lesz az eredmény.

Linux parancsgyűjteményem 3

CentOS / RHL Offline update

Letölti az updateket egy könyvtárba
yum update -y --downloadonly --downloaddir=/tmp/offline_updates/
--downloadonly : don’t update, just download an rpm file

Csak az mc letöltése
yum install mc -y --downloadonly --downloaddir=/tmp/offline_updates/

pack: tar cvpzf updatas.tgz /tmp/offline_updates/
Copy to offline machine (scp) and extract than install

yum localinstall /tmp/offline_updates/*.rpm --disablerepo=*

How do i extract downloaded RPM file?
rpm2cpio httpd-2.2.3-31.el5_4.2.x86_64.rpm | cpio -idmv

---------------------------------------------------------------------------------------------------------------
Disk usage szösszenet

df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 47G 25G 20G 56% /
#
du -sch ~
19G /home/zalmando
19G total

Android szerviz kódok

Biztos sokan emlékeznek a Nokiás időszakra, amikor mindenki tudott valami speciális kódot, amivel a telefon valami extra információt szolgáltatott. Nos ilyen kódok bizony Android rendszerű telefonokra is vannak, sőt sokkal mélyebbre tudunk velük nyúlni az OS-ben mint azt gondolnánk. Az alábbi kódok a beszámolók szerint nem minden telefonon működnek, valószínűleg nagy része Samsung telefonokhoz való.
Figyelem! Nagyon óvatosan bánjuk a következő kódokkal, nem vállalunk felelősséget , hogy ha valaki működésképtelenné teszi a telefonján.
*#*#4636#*#*
A telefon és az akkumulátor adatait írja ki, többek között az akku töltési történetéről és használatáról is kapunk statisztikát. Meg tudhatjuk a töltöttségi szintet, és a hőmérsékletet is, de még a wifi és gsm hálózatot is van lehetőségünk ebben a menüben tesztelni.
*#*#7780#*#*
Ezzel a kóddal nagyon óvatosan kell bánni, mert ez az úgynevezett „factory data reset”. Eltávolítja a telefonból a Google account beállításait, a rendszer és az alkalmazások beállításait és a letöltött alkalmazásokat. Nem módosítja azonban a rendszerprogramokat, a telefonnal szállított alkalmazásokat és az SD kártya tartalmát (fényképeket, zenei állományokat).
*2767*3855#
Ezt csak a legvégső esetben próbáljuk ki, főleg csak akkor, ha tényleg mindent törölni szeretnénk a mobilból. Ez a karaktersorozat ugyanis a „factory format” utasítást fogja végrehajtani. Minden fájlt és beállítást töröl, és újratelepíti a gyári firmware-t. A parancs végrehajtását nem lehet felfüggeszteni, kivéve, ha eltávolítjuk az akkumulátort.
*#*#34971539#*#*
A telefonban épített kamera menüjéhez juthatunk ezzel a kóddal. A következő menüpontok jelennek meg:
• Update camera firmware in image - Figyelem ezt ne használd, mert működésképtelenné teszi a kamerát!
• Update camera firmware in SD card
• Get camera firmware version
• Get firmware update count
*#*#7594#*#*
Az „End Call / Power” gomb működését tudjuk megváltoztatni. Alapesetben ennek a gombnak a hosszú megnyomása után még egy listából ki kell választani, hogy néma üzemmódba vagy repülős üzemmódba akarjuk-e állítani a telefont, vagy ki akarjuk kapcsolni. A kóddal átállíthatjuk, hogy a gomb hosszú megnyomása azonnal kikapcsolja a készüléket.
*#*#273283*255*663282*#*#*
A „File copy” képernyőre jutunk, ahol backupot készíthetünk a média fájlokról (Images, Sound, Video memo, Voice memo).
*#*#197328640#*#*
Szerviz módba állítja a telefont, amelyben teszteket és beállításokat végezhetünk.
*#*#232339#*#* vagy *#*#526#*#* vagy *#*#528#*#*
WLAN teszt – a „Menu” gomb megnyomásával indíthatjuk a különböző teszteket.
*#*#232338#*#*
Kiírja a WiFi MAC címét
*#*#1472365#*#* vagy *#*#1575#*#*
GPS teszt
*#*#232331#*#*
Bluetooth teszt
*#*#232337#*#
Kiírja a Bluetooth eszköz címét
*#*#8255#*#*
Elindítja a GTalk Service Monitort.
A telefon firmware-jéről a következő kódokkal kaphatunk információkat:
*#*#4986*2650468#*#* – PDA, Phone, H/W, RFCallDate
*#*#1234#*#* – PDA és Phone
*#*#1111#*#* – FTA SW verzió
*#*#2222#*#* – FTA HW verzió
*#*#44336#*#* – PDA, Phone, CSC, Build Time, Changelist number
Gyári tesztek indítása:
*#*#0283#*#* – Packet Loopback
*#*#0*#*#* – LCD teszt
*#*#0673#*#* vagy *#*#0289#*#* – Melody teszt
*#*#0842#*#* – Vibration teszt és BackLight teszt
*#*#2663#*#* – Touch screen verzió
*#*#2664#*#* – Touch screen teszt
*#*#0588#*#* – Proximity sensor

Linux programok - kedvcsináló

Smem - selenic.com/smem
Memory usage calculator

Install: sudo apt-get install smem

A memória felhasználás egyike a könnyen félreértelmezhető topicoknak.
Kezdetekben amig nem létezett a Multi task és a dinamic link library (dll), shared library és igy tovább...
a valós RAM felhasználás kiszámitása lényegesen egyszerűbb volt.
A legegyszerűbben a top paranccsal kérdezhetjük le az aktuális RAM fogyasztást amit a RES (resident set size) oszlop mutat.
RES - mennyi fizikai memória lett lefoglalva, viszont a közös library-k igy akár többször is beleszámolódhatnak a memória felhasználásba.
Ezzel szemben az smem képes kezelni a shared program részeket és ezáltal valósabb képet ad. Ezt a módot hivják resident set size -nak, röviden RSS.
smem - alap információk (hasonlóan,mint a top)
smem -m - library-oriented nézet
smem -u - user oriented nézet
smem -t -p - teljes felhasználás százalékos eloszlásban
smem -c "name user pss" - oszlopokba rendezve
smem -s rss -r - Sort by reverse RSS
smem -M libxml - Show processes filtered by mapping
smem -m -P [e]volution - Show mappings filtered by process
smem --pie name -s rss - Show a pie chart of RSS labeled by name