Aşağıdaki şekilde kodu oluşturdum şu anda ./deneme.sh diyerek
çalıştırabiliyorum.Ama cron üzerine eklediğimde otomatik 5 dakikada bir
çalıştıramadım.
Bir problemim daha oluştu sql sorgu sonucunu | "pipe" ile ayırmam ve csv
'lerde olduğu gibi boşluk bırakmamam gerekiyor.output çıktısını istediğim
formata getirmem mümkün olabiliyormu yoksa output default olarakmı geliyor.
#Kod
#!/bin/bash
#*************************
# 5 dakikalik access log icin cron betigi
# Umit AYDINLI
# 24/07/2009
#*************************
#
# databse adi
dbadi=dbadi
# databse tablosu
dbtablosu=dbtablosu
# ana log ismi
logadi=access_all
# gzip yolu
gzip="/usr/bin/gzip"
# sorgu sonucunun dizilimi
opsiyondizimi="order by acctstoptime desc"
# sorgu betigi
opsiyonlar="username,framedipaddress,acctstarttime,acctstoptime,(acctsession
time/60),(acctinputoctets/8),(acctoutputoctets/8),callingstationid,accttermi
natecause"
# actif user sorgusu
opsiyonzamani="where acctstarttime"
# ana sorgu betigi
sorgu="select $opsiyonlar from $dbtablosu $opsiyondizimi"
# export dosya dizini
dosyadizini=/home
kullanici="user"
tarih=`date +%F`
saat=`date +%H`
dakika=`date +%M`
if [ ! -d $dosyadizini ]; then
mkdir -p $dosyadizini
fi
cd $dosyadizini
# sql sorgu betigi
psql $dbadi -U $kullanici -c "$sorgu"
>${dosyadizini}/${tarih}-${saat}:${dakika}-${logadi}.log
# eski dosyalarin silinmesi
rm -f ${dosyadizini}/${tarih}-*-${logadi}.log.gz
# alinan dosyanin sikistirilmasi
$gzip ${dosyadizini}/${tarih}-${saat}:${dakika}-${logadi}.log
############
# ftp betigi
############
ftphost=ftp.host.com
ftpuser=test
ftppass=test
ftp -in $ftphost <<EOF
quote USER $ftpuser
quote PASS $ftppass
binary
put "${tarih}-${saat}:${dakika}-${logadi}.log.gz"
quit
EOF
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Abdullah ÜLKER
Sent: Friday, July 24, 2009 8:57 AM
To: [email protected]
Subject: [Linux-sunucu] Re: postgresql zamanlı sorgu çalıştırma
psql konusunda bilgim yok, ama mysql yedeğini alıp birde mail eki olarak
gönderen betik yazmıştım.
Devrim GÜNDÜZ ün vermiş olduğu komut satırı ile benim yazdığım betiği
harmanlayıp, çözüm üretebilirsiniz.
http://caylak.prophp.org/wordpress/?p=71
crontab kısmına gelince
http://caylak.prophp.org/wordpress/?p=44
sonucu yazarsanız seviniriz.
Devrim GÜNDÜZ yazmış:
> On Thu, 2009-07-23 at 20:05 +0300, [email protected] wrote:
>
>> select user from usertable sorgusunu her 5 dakikada bir otomatik
>> işletmem ve
>> sonucu .log veya .tar gibi otomatik almam mümkünmüdür.
>>
>> bunu bir bash dosya yapıp otomatik işletsem komut olarak ne vermem
>> gerekir.
>>
>
> psql veritabanı -U kullanıcı_adı -c "SELECT user FROM usertable" -o
çıktı_dosyası
>
>
> Bunu crondan çalıştırın. -o ile sonucu yazacağını dosyayı
> belirtiyorsunuz. -c ile de komutu veriyorsunuz.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Linux-sunucu E-Posta Listesi
> [email protected]
>
> Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
>
> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
> http://liste.linux.org.tr/mailman/listinfo/linux-sunucu
>
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
http://liste.linux.org.tr/mailman/listinfo/linux-sunucu
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
http://liste.linux.org.tr/mailman/listinfo/linux-sunucu