27
Oct

Phonegap - Hellow world

   Posted by: admin   in Mẹo vặt của hiếu râu

download android sdk, adt, unzip vao c:\adt

$ android create avd –name avd19 –target android-19

download nodejs http://nodejs.org/download/ , chon windows bin 32 hoac 64 bits, copy vao c:\adt\node.exe

download npm, http://nodejs.org/dist/npm/ , unzip vao c:\adt\

download http://ant.apache.org/ , unzip vao c:\adt\ant , set PATH=c:\adt\ant\bin

C:\> npm install -g phonegap

$ phonegap create my-app
$ cd my-app
$ phonegap install android
$ phonegap run android

$ plugman install –platform android –project “c:\adt\my-app\platforms\android” –plugin org.apache.cordova.device

$ phonegap local plugin add org.apache.cordova.device
DEBUG tool
$ npm -g install weinre
$ weinre --boundHost yourIP
open web http://yourIP:8080/client
put this line to www/index.html
<script src="http://yourIP:8080/target/target-script-min.js"></script>

cd /path/to/dir
find . -type f -name ‘*.html’ -exec grep -l “abcxyz” {} +

find . -type f -name ‘*.html’ -exec grep “abcxyz” {} +

for i in `ls /var/spool/mqueue/qf*`; do  grep ‘abcxyz’ $i && rm -f $i; done

7
Oct

linux system monitoring

   Posted by: admin   in Mẹo vặt của hiếu râu

enable epel

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

yum install glances

glances

7
Oct

mysql php utf8 charset

   Posted by: admin   in Mẹo vặt của hiếu râu

mysql_query(”SET character_set_results = ‘utf8′, character_set_client = ‘utf8′, character_set_connection = ‘utf8′, character_set_database = ‘utf8′, character_set_server = ‘utf8′”);

http://repoforge.org/use/

rpm -ivh rpmf……rpm

yum install bonnie

bonnie -s 2000

yum install iperf

iperf -s

iperf -c [hostname/ip]

dd if=/dev/zero of=speetest bs=1M count=1000 conv=fdatasync

hdparam -T/-t /dev/sda

#yum install conspy

#conspy 1

27
May

openvz - remote public ip

   Posted by: admin   in Mẹo vặt của hiếu râu

======= on public ip vps ===============================

#ip tunnel add gre1 mode gre local [public_ip] remote [openvz_ip]
#ifconfig gre1 192.168.1.1 pointopoint 192.168.1.2
#route add [local_ip] gw 192.168.1.2

*nat
:PREROUTING ACCEPT [25003:1664683]
:POSTROUTING ACCEPT [168001:10091407]
:OUTPUT ACCEPT [168000:10091367]
-A PREROUTING -d [public_ip] -p tcp -m tcp –dport 80 -j DNAT –to-destination [local_ip]:80
-A PREROUTING -d [public_ip] -p tcp -m tcp –dport 22 -j DNAT –to-destination [local_ip]:22
-A POSTROUTING -s [local_ip] ! -d [public_ip] -j SNAT –to-source [public_ip]
COMMIT

#echo 1 > /proc/sys/net/ipv4/ip_forward
========== ON OPENVZ =====================
#ip tunnel add gre1 mode gre remote [public_ip] local [openvz_ip]
#ifconfig gre1 192.168.1.2 pointopoint 192.168.1.1
echo “201   gre_1″ >> /etc/iproute2/rt_tables
# /sbin/ip rule add from [local_ip] table gre_1
# /sbin/ip route add throw [openvz_ip] table gre_1
# /sbin/ip route add default via 192.168.1.1 table gre_1
17
Jan

PowerDNS pdns

   Posted by: admin   in Mẹo vặt của hiếu râu

wget http://downloads.powerdns.com/releases/pdns-3.3.1.tar.gz

tar -zxvf pdns-3.3.1.tar.gz

cd pdns-3.3.1

./configure –with-modules=”gmysql” –without-lua

make && make install

vi /usr/local/etc/pdns.conf

launch=gmysql

#gmysql-host=127.0.0.1

gmysql-socket=/var/run/mysql/mysql.sock

gmysql-user=xxx

gmysql-dbname=pdns

gmysql-password=xxx

——– SQL ———

CREATE TABLE `records` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`domain_id` int(11) DEFAULT NULL,

`name` varchar(255) DEFAULT NULL,

`type` varchar(10) DEFAULT NULL,

`content` varchar(64000) DEFAULT NULL,

`ttl` int(11) DEFAULT NULL,

`prio` int(11) DEFAULT NULL,

`change_date` int(11) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `nametype_index` (`name`,`type`),

KEY `domain_id` (`domain_id`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1

CREATE TABLE `domains` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) NOT NULL,

`master` varchar(128) DEFAULT NULL,

`last_check` int(11) DEFAULT NULL,

`type` varchar(6) NOT NULL,

`notified_serial` int(11) DEFAULT NULL,

`account` varchar(40) DEFAULT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `name_index` (`name`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

+—-+————–+——–+————+——–+—————–+———+

| id | name         | master | last_check | type   | notified_serial | account |

+—-+————–+——–+————+——–+—————–+———+

|  1 | macatung.com | NULL   |       NULL | NATIVE |            NULL | NULL    |

+—-+————–+——–+————+——–+—————–+———+

+—-+———–+——————-+——+——————————-+——-+——+————-+

| id | domain_id | name              | type | content                       | ttl   | prio | change_date |

+—-+———–+——————-+——+——————————-+——-+——+————-+

|  1 |         1 | macatung.com      | SOA  | localhost info@macatung.com 1 | 86400 | NULL |        NULL |

|  2 |         1 | macatung.com      | NS   | ns1.macatung.com              | 86400 | NULL |        NULL |

|  3 |         1 | macatung.com      | NS   | ns2.macatung.com              | 86400 | NULL |        NULL |

|  4 |         1 | www.macatung.com  | A    | 127.0.0.1                     |   120 | NULL |        NULL |

|  5 |         1 | mail.macatung.com | A    | 127.0.0.2                     |   120 | NULL |        NULL |

|  6 |         1 | macatung.com      | MX   | mail.macatung.com             |   120 |    5 |        NULL |

+—-+———–+——————-+——+——————————-+——-+——+————-+

pdns_server –daemon=no
pdns_server –daemon=yes
zone2sql –named-conf=/etc/named.conf –gmysql
=========== CENTOS 6 ===============
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install pdns pdns-backend-mysql
11
Jan

apache mod proxy

   Posted by: admin   in Mẹo vặt của hiếu râu

ProxyPass /g2auth http://127.0.0.1:808/g2auth

ProxyPreserveHost On

——————————————-

ProxyPass /cacti http://192.168.205.1/cacti

ProxyPassReverse /cacti http://192.168.205.1/cacti

ProxyPass /nagios http://192.168.205.1/nagios

ProxyPassReverse /nagios http://192.168.205.1/nagios

2
Jan

PAM on Slackware

   Posted by: admin   in Mẹo vặt của hiếu râu

mount -o loop slackware1337.iso /mnt

installpkg /a/ap/l/d/n/*.txz

cd /mnt/extra/source/pam

./pam.SlackBuild

installpkg /tmp/pam-1.1.3-x86_64-1.txz

——————-

cp -R /mnt/source/a/shadow /tmp/shadow

cd /tmp/shadow

edit shadow.SlackBuild

insert “read -p ‘Modify code now. Enter when complete…’” before ./configure

./shadow.SlackBuild

When asked for Modify code, open new ssh session, modify code on /tmp/shadow-4.1.4.3/libmisc/chkname.c

save / close ssh session

press Enter on other ssh session

removepkg shadow

installpkg /tmp/shadow-4.1.4.3-x86_64.txz

cd /etc/pam.d

root@slax:/etc/pam.d# cat login

#%PAM-1.0

auth            include         common-auth

account         include         common-account

password        include         common-password

session         include         common-session

root@slax:/etc/pam.d# cat common-auth

auth            sufficient      pam_unix.so

auth            required        pam_deny.so

root@slax:/etc/pam.d# cat common-account

account         sufficient      pam_unix.so

account         required        pam_permit.so

root@slax:/etc/pam.d# cat common-password

password        sufficient      pam_unix.so

password        required        pam_deny.so

root@slax:/etc/pam.d# cat common-session

session         sufficient      pam_mkhomedir.so skel=/etc/skel umask=0022

session         sufficient      pam_unix.so

session         required        pam_deny.so

root@slax:/etc/pam.d#login

edit /etc/login.defs , comment (#) out warnings

root@slax:/etc/pam.d# cat sshd

#%PAM-1.0

auth       required     pam_google_authenticator.so try_first_pass forward_pass secret=${HOME}/otp/.google_authenticator

auth            required      pam_unix.so use_first_pass

#auth            include         common-auth

account         include         common-account

password        include         common-password

session         include         common-session

root@slax:/etc/pam.d# cat su

#%PAM-1.0

auth            sufficient      pam_rootok.so

auth            include         common-auth

account         include         common-account

password        include         common-password

session         include         common-session

root@slax:/etc/pam.d# cat passwd

#%PAM-1.0

auth            include         common-auth

account         include         common-account

password        include         common-password

session         include         common-session

root@slax:/etc/pam.d# cat useradd

#%PAM-1.0

auth            sufficient      pam_rootok.so

account         required        pam_permit.so

password        include         common-password

———————-

open-ssh, edit slackBuid, replace –without-pam with –with-pam, edit sshd_config , UsePAM yes

# cat /etc/pam.d/sshd

#%PAM-1.0

auth       sufficient   pam_radius_auth.so

account    required     pam_unix.so

account    required     pam_permit.so

password   sufficient   pam_unix.so

password   required     pam_deny.so

session    sufficient   pam_unix.so

session    required     pam_deny.so

slackware 14.1 http://www.slackware.com/~vbatts/pam/
24
Dec

mysql master master replication

   Posted by: admin   in Mẹo vặt của hiếu râu

MySQL Master-Master replication:
Master-1 IP: 0.0.0.1
Master-2 IP: 0.0.0.2

Master-1 my.cnf configuration:

log-bin

log_warnings

log_slow_queries = /var/lib/mysql/slow.log

long_query_time = 5

tmpdir = /tmp

server-id = 1

auto_increment_increment = 2

auto_increment_offset = 1

relay-log = mysql-relay-bin

Master-2 my.cnf configuration:

log-bin

log_warnings

log_slow_queries = /var/lib/mysql/slow.log

long_query_time = 5

tmpdir = /tmp

server-id = 2

auto_increment_increment = 2

auto_increment_offset = 2

relay-log = mysql-relay-bin

Replication procedure:

1st setup Master1 as Master and Master2 as slave for Master-1:

Follow below steps:
On Master-1:

Step 1: mysql> grant replication slave on *.* to ‘replicationuser1′@’0.0.0.2′ identified by ‘password’;

Step 2: mysql> show master status;
It shows file name and position, Use these records on Master-2 to run it as slave for Master-1.

Step 3: Now log on to master-2 and run the below query:

CHANGE MASTER TO MASTER_HOST=’0.0.0.1′, MASTER_USER=’replicationuser1′,MASTER_PASSWORD=’password’, MASTER_LOG_FILE=’mysql-bin.000017′,MASTER_LOG_POS=751;

Step 4: start slave
Step 5: show slave status \G

On this status, the following 2 records should be as follows
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

These 2 records indicates Replication status. If these parameters show “Yes” that means replication is running successfully.

Setup Master2 as Master and Master1 as slave for Master-2:

On Master-2 server:

Step 1: mysql> grant replication slave on *.* to ‘replicationuser2′@’0.0.0.1′ identified by ‘password’;

Step 2: mysql> show master status;

Step 3: Now log on to master-1 and run the below query:
CHANGE MASTER TO MASTER_HOST=’0.0.0.2′, MASTER_USER=’replicationuser2′,MASTER_PASSWORD=’password’, MASTER_LOG_FILE=’mysql-bin.000002′,MASTER_LOG_POS=536;
Step 4: start slave
Step 5: show slave status \G

The following parameters should show “Yes”, so that replication is running successfully

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

On both servers “slave_IO_Running” and “slave_SQL_Running” parameters should always be “Yes” for successful Master-Master Replication.

http://rajesh9333.wordpress.com/2013/09/12/mysql-master-master-replication-on-redhat-and-centos-servers/

[root@api01 ~]# cat /etc/snmp/mysql.sh

#!/bin/bash

if [ "$1" == "processlist" ]; then

echo -n “0″

echo “select count(id) from information_schema.processlist;” | mysql –defaults-extra-file=/root/my.key | tail -n 1

exit

fi

echo “update SYNC.SYNC set Dt=NOW() where id=1;” | mysql –defaults-extra-file=/root/my.key > /dev/null 2>&1

echo “show slave status\G;” | mysql –defaults-extra-file=/root/my.key | grep Read_Master | awk ‘{print 0$2}’

create database SYNC;

create table SYNC (id int, dt datetime);

exec mysqlslave /etc/snmp/mysql.sh

exec mysqlprocess /etc/snmp/mysql.sh processlist

===== mysql 8.x

root@mysql02:~# while true; do if [[ $(mysql -e "SHOW SLAVE STATUS\G" | grep "Last_SQL_Error:" | grep -c "test.sync") -gt 0 ]]; then mysql -e “STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;”; else break; fi; sleep 1; done

====