Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu

[es] :: Linux aplikacije :: [HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu

[ Pregleda: 3250 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Jbyn4e

Član broj: 422
Poruke: 6049
*.kbcnet.co.yu.



+257 Profil

icon [HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu01.04.2009. u 08:26 - pre 183 meseci
U skorije vreme sam morao na mailing list serveru koja svoju bazu cuva u flat file formatu (tj. u fajlovima) da promenim sve .yu u .rs, da ne bi korisnici bili isclanjeni zbog prestanka rada .yu domena. To se relativno lako postize, ali sam pomislio da ce nekome trebati ili biti korisno, pa evo kako se to radi.
Prvo, rec je o ecartis mailing list serveru koji korisnike drzi u fajlovima naziva users u direktorijumu po nazivu liste ime_liste, tj. fajl je oblika ime_liste/users. Jednostavan skript koji to radi, a pokrenut je u tom korenom direktorijumu listi je:

for i in `find . -name 'users'| sed 's_\./__g'`;
do
sed 's/\.yu/\.rs/g' $i > $i.rs
mv $i.rs $i
done

Objasnjenje skripta:
za svaki "i" koji zadovoljava da se nasao u obliku ime_direktorijuma/users (find ce naci oblika ./ime_dir/users, a sed mu skida to ./, mada mu verovatno ne smeta, vise volim kad je preglednije)
uradi
zameni sed-om .yu u .rs, smesti u fajl users.rs
pomeri users.rs u users
zavrsi sa radom.

Nadam se da ce nekome biti korisno.

P.S. koriscenje separatora kod sed-a nije ograniceno na /, vec moze i _ (pretpostavljam i jos neki, ali mi nikad nije trebalo), pa je u primeru gore upotrebljen jednom jedan a drugi put drugi cisto primera radi.


[Ovu poruku je menjao Jbyn4e dana 01.04.2009. u 13:17 GMT+1]
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

momsab
Momčilo
Beograd, R.Srbija

Član broj: 2804
Poruke: 3041
*.dynamic.sbb.rs.

Jabber: pitati@PP
Sajt: www.momsab.com


+1 Profil

icon Re: Promena .yu u .rs u mailing listama koje imaju flat file bazu01.04.2009. u 11:36 - pre 183 meseci
problemi kod ove zamene su sledeci, ako nisu u pitanju adrese kod domacih provajdera: dosta domena niej prebaceno sa yu na rs, i neki co.yu su prebaceni rs a ne i na co.rs

dobra skripta :)
Žena u krevetu i vino na stolu nikako ne smeju da čekaju. Jer, vino se greje a žena hladi.

-vinolog
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
89.110.202.*



+257 Profil

icon Re: [HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu02.04.2009. u 11:41 - pre 183 meseci
"Malo" izmenjena skripta (koja nije testirana na pravim fajlovima jos) , koja uzima u ubzir da je mozda doslo do prelaska sa co.yu ili org.yu na .rs, ako ne postoji .co.rs, bi izgledala nekako ovako (komentari su dati u primeru):


for fajl in `find . -name 'users*'| sed 's_\./__g'`;
do
#zameni sve .yu u .rs
fajlrs=${fajl}.rs
sed 's/\.yu/\.rs/g' $fajl > $fajlrs
#pronadji da li u fajlrs ima neispravnih adresa
while read linija
do
echo "fajl: "$fajl
# obrisi sve sto ima iza mail adrese (u liniji konfiguracionog fajla mailing list servera)
i=`echo $linija|sed 's/ : |.*//g'`
#nadji domen pod pretpostavkom da ima samo jedno @
# otkomentarisi sledece ako zelis da vidis kako izgleda linija
# echo "linija "$i
domen=`echo $i|sed 's/^.*@//g'`;
#nadji username, pod pretpostavkom da ima samo jedno @
username=`echo $i|sed 's/@.*$//g'`;
#nadji da li ima MX record u DNS-u za njega
imamx=`host -t mx $domen| grep -v 'is handled'|sed 's/ //g'`;
# ako nema domena
# otkomentarisi sledece ako hoces da ti ispisuje kod svakog
#echo "user: "$username" domen: "$domen" imamx: "$imamx
if [ x${imamx} != x ];
then
#proveri da li je presao sa co.rs ili org.rs na .rs
domen1=`echo $domen| sed 's/\.co\.rs/\.rs/g;s/\.org\.rs/\.rs/g'`;
imamx1=`host -t mx $domen1| grep -v 'is handled'|sed 's/ //g'`;
# trazimo da li se u odzivu host naredbe za MX domena javlja is handled. Ako se javlja - MX record postoji
#ako nije presao ni na .rs
if [ x${imamx1} != x ];
then
# nema ni domen .rs, treba ga spremiti u nepostojece koje treba brisati ili ostaviti kao .yu
echo $i>>neispravni.txt1
else
#presao je na .rs, nema co.rs ili org.rs
# $domen1 je dobar, treba zameniti u liniji co.rs ili org.rs sa .rs
echo $linija|sed 's/\.co\.rs/\.rs/g;s/\.org\.rs/\.rs/g'>>${fajlrs}.dobar
fi;
else
# ima mx zapis, domen je dobar i e-mail je dobar (sto ne znaci da postoji na domenu)
echo $linija>>${fajlrs}.dobar;
fi;
done < $fajlrs
#ciscenje na kraju, obrisi pomocni $fajlrs i pomeri dobre u stari users fajl
rm -f $fajlrs
mv ${fajlrs}.dobar $fajl
done


Ima li nekih sugestija kako bi se to jos moglo odraditi?

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Mister Big Time
The Consigliere
enterparadajz
Belgrade

Član broj: 15306
Poruke: 4747

Sajt: www.go2bed.net


+43 Profil

icon Re: [HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu07.12.2010. u 23:19 - pre 162 meseci
Ja ovo radim na MySQL bazi, shvatih da je malo komplikovanije nego sto sam mislio iz razloga koji je naveo momsab...

Pa sam mislio da napravim posebno upit za svakog provajdera tipa:
eunet.yu -> eunet.rs
dakle ono u sta sam 100% siguran a onda ono sto ostane tipa perinafirmica.co.yu da samo bacim izmenu umesto .yu na .rs pa sta Bog da, i tako su ti korisnici vec otpisani jer nisu sami azurirali emailove...

Upit:

Code:
SELECT *
FROM `nazivbaze_members`
WHERE `emailAddress` LIKE '%.yu'


mi je vratio sve sa .yu zavrsetkom.

Kako najbezbolnije izvesti operaciju izmene, any suggestions?

sad vidim ima i ovih koji su skroz mrtvi tipa @deltabanka.co.yu (promena na bancaintesa . nesto...) ili @afrodita.rcub.bg.ac.yu (pitaj Boga...) @jp.ptt.yu, @scnet.yu ili @net.yu ... itd.

Koje su posledice (kre)debilne tranzicije sa yu na rs jos uvek se oseca... xD


Code:



UPDATE `dbmirror`.`korisnici` SET `emailAddress` = '%eunet.rs' WHERE `korisnici`.`emailAddress` LIKE '%eunet.yu'



^ radi ali zahebe username tj. sve ispred znaka %

Kako napraviti sintaksu koja ce sve pre % da sacuva tj. da ne dira?




[Ovu poruku je menjao Mister Big Time dana 08.12.2010. u 02:27 GMT+1]
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.rs.



+257 Profil

icon Re: [HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu08.12.2010. u 07:04 - pre 162 meseci
Nisam probao, ali verovatno bi trebalo da upotrebis neku od string funkcija mysql-a, npr. replace, primer sa
http://dev.mysql.com/doc/refma...unctions.html#function_replace
Code:

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'



Odnosno upotrebis nesto u stilu:
Code:

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);

update client_table set company_name = replace(company_name, ‘Old Company’, ‘New Company’);

Preuzeto sa
http://www.mydigitallife.info/...t-in-mysql-database-using-sql/

P.S. Drugi nacin je da uradis export baze u sql fajl, primenis neku od gornjih skripti koje sam pisao (samo izmenjenu za tvoje potrebe) i dalje importujes nazad bazu...
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

Mister Big Time
The Consigliere
enterparadajz
Belgrade

Član broj: 15306
Poruke: 4747

Sajt: www.go2bed.net


+43 Profil

icon Re: [HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu12.12.2010. u 11:05 - pre 162 meseci
Hvala Jbyn4e,
nisam stigao da se pozabavim ovim problemom, probacu danas...

 
Odgovor na temu

[es] :: Linux aplikacije :: [HOWTO] Promena .yu u .rs u mailing listama koje imaju flat file bazu

[ Pregleda: 3250 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.