Jump to content
Sign in to follow this  
fuat16

tekrar crontab..........

Recommended Posts

ben crontab içine 0 8,12,16,20,23 * * * /home/islem/yedekle0607.sh şeklinde bir satır yazdım.komut satırından manuel olarak yedekle0607.sh dosyasının içeriğindeki görevi yaptırabiliyorum ama bu şekilde crontaba yazınca işlemi yapmıyor.bu dosyayı saa 8-12-16... da çalıştırmasını istiyorum ama çalıştırmıyor.acaba yanlış mı yazıyorum?????

Share this post


Link to post
Share on other sites

ben crontab içine

0 8,12,16,20,23 * * * /home/islem/yedekle0607.sh

şeklinde bir satır yazdım.komut satırından manuel olarak yedekle0607.sh dosyasının içeriğindeki görevi yaptırabiliyorum ama bu şekilde crontaba yazınca işlemi yapmıyor.bu dosyayı saa 8-12-16... da çalıştırmasını istiyorum ama çalıştırmıyor.acaba yanlış mı yazıyorum?????

Çalıştırma hakkı olarak root girerseniz olur sanırım;

0 8,12,16,20,23 * * * root /home/islem/yedekle0607.sh

Share this post


Link to post
Share on other sites

Sanırım probrlam crontab da değil de yedekle0607.sh nin içinde.çünkü komut satırından ./yedekle0607.sh dediğim zaman normalde çalışştırması gerekirken bana şu hatayı veriyor; bad interpreter: no such file or directory şeklinde... halbuki yedekle0607.sh içerisindeki dosya yolu da doğru tanımladım.Problem neden kaynaklanıyordur o halde???? ACİİLLLLL :o

Share this post


Link to post
Share on other sites

Sanırım probrlam crontab da değil de yedekle0607.sh nin içinde.çünkü komut satırından ./yedekle0607.sh dediğim zaman normalde çalışştırması gerekirken bana şu hatayı veriyor;

bad interpreter: no such file or directory şeklinde... halbuki yedekle0607.sh içerisindeki dosya yolu da doğru tanımladım.Problem neden kaynaklanıyordur o halde???? ACİİLLLLL :o

Yol tanımlarken nokta (.) kullanırsanız dosyanın çalıştırıldığı yerde olduğu varsayılıyor, yol tanımı yaparken yolu tam olarak verin.

/home/user/dosya gibi.

Ek bilgi:

Çalıştırılabilir dosyaya .sh gibi uzantı vermek zorunda değilsiniz. ;)

Share this post


Link to post
Share on other sites

bakın yedekle0607.sh içerisindeki satır şu şekilde; mysqldump -u root -h $host -psifre --opt $db | gzip > $dizin/$db.sql.gz (dizin=home/YEDEK/yedek0607) crontab da yol olarak belirttiğim satır ise şöyle; 0 9 * * * root /home/islem/yedekle0607.sh yani ben halaa bir arıza göremiyorum, lütfen bana gösterebilirmiisniz???

Share this post


Link to post
Share on other sites

bakın biraz nette source yaptım fakat dosyaya execute hakkı verin diyor vs....... yani çıkmazdayım!!!!!

Share this post


Link to post
Share on other sites

bakın biraz nette source yaptım fakat dosyaya execute hakkı verin diyor vs.......

yani çıkmazdayım!!!!!

dizin yolu yanlış sanki, en baştaki "/" işaretini koymuşmudunuz.?

/home/YEDEK/yedek0607 şekilde olmalı, yani yol tam yazılmalı

Dosyanın çalıştırılabilir olması için;

chmod 755 dosyaadi

Share this post


Link to post
Share on other sites

yaa orda değil ama dosyamda /home/... şeklinde yaptım.Sizin dediğiniz gibi chmod unu da ayarladım ama yine olmadı.benim baktığım nette /bash dizinine yada /sh dizinine chmod ayarı yapılmalı gibi birşey diyordu tam olarak anlayamadım.Sanırım bash dizini sh ye yönlendirilimiş felan diyordu. çaresiz kaldım arkadaşlar yardım........................

Share this post


Link to post
Share on other sites

yaa orda değil ama dosyamda /home/... şeklinde yaptım.Sizin dediğiniz gibi chmod unu da ayarladım ama yine olmadı.benim baktığım nette /bash dizinine yada /sh dizinine chmod ayarı yapılmalı gibi birşey diyordu tam olarak anlayamadım.Sanırım bash dizini sh ye yönlendirilimiş felan diyordu.

çaresiz kaldım arkadaşlar yardım........................

Script dosyasını nuraya attach yapın bakalım hata neredeymiş.

Share this post


Link to post
Share on other sites

#!/bin/bash bugun=`date +"%d-%m-%Y"` ugo_7=`date +"%d-%m-%Y" --date="7 days ago"` saat=`date +"%H"` yerel_dizin="/home/YEDEK/yedek0607" db=´database´ host="localhost" mysqldump -u root -h $host -psifre --opt $db | gzip > $yerel_dizin/$saat-$bugun-$db.sql

Share this post


Link to post
Share on other sites

İşin ilginç tarafı kod sorunsuz çalışıyor ama biraz sadeleştirdim.

#!/bin/bash

zaman=`date +"%H-%d%m%Y"`

yerel_dizin="/home/YEDEK/yedek0607"

db="awbs"

host="localhost"

mysqldump -u root -h $host -p --opt $db | gzip > $yerel_dizin/$zaman-$db.sql.gz

Buradaki koda göre /home dizini içinde YEDEK onunda içinde yedek0607 klasörleri olması lazım, orada bir hata yapıyor olmayasın.

Share this post


Link to post
Share on other sites

sonunda oldu şükür... dos2unix yedekle0607.sh diyip sonra chmod a+x yedekle0607.sh ve sonra da ./yedekle0607.sh diyince elle manuel olarak bu dosyayı çalıştırmayı başardım arkadaşlar(bazı karakterlerin formatından dolayı unixe çevirdim,bu tarz problemle karşılaşan arkadaşlarıın akıllarında bulunsun....) Fakat şimdi yine crontab la problemim var,yukarıdaki dosyayı crontab içerisinde otomatik çalışsın istiyorum fakat herşey nırmal göründüğü halde çalışmıyor!!!crontab içeriği şu; */2 * * * * root /home/YEDEK/yedekle0607.sh (her 2 dakikada 1 çalıştırmasını istiyorum..) tavsiyesi olan varmıdır??? kolay gelsin....

Share this post


Link to post
Share on other sites

linki okudum ve faydalı olduğu kanaatindeyim fakat crontab halen çalışmıyor :blush:

Share this post


Link to post
Share on other sites

linki okudum ve faydalı olduğu kanaatindeyim fakat crontab halen çalışmıyor :blush:

İki dakikada bir çalışsın demişsin ama crontab dışarıdan yapılan girdilerde en yalın zaman olarak 5dk verilmiştir. Hem iki dakikada bir yedek alamazsın, birini yedek alırken yedek bitmeden öbürü onun üzerine gelecektir ve makinen 100% yüklenecek. Yedek dediğin günlük veya haftalık alınır, yapmak istediğini açıkcası anlamadım.

Share this post


Link to post
Share on other sites

yaa zaten ben aslında 3 saate bir almak istiyorum da onu da yapmıyor.5 dakkada 1 almasını istememein sebebi çalışıp çalışmadığını anlamak için 3 saat beklemek yerine 5 dakka beklemek.zaten yapmaya çalıştığı işlemi 1 dakikada yapıyor, yani 2.kez çalışmaya başladığında çoktan önceki işlem bitmiş oluyor...... ama maalesef çalışmıyor işte....

Share this post


Link to post
Share on other sites

crontab -r yapıp tanımlamayı silip tekrar yaptım fakat yine olmadı.birde crontab -l yaptığım zaman do not edit this file .. edit the master and reinstall diyor..sonra da altta tanımlama yaptığım satır yazıyor... bu normalmidir???

Share this post


Link to post
Share on other sites

arkadaşlar sisteme zaten root olarak bağlandığımı ve crontab içerisinde tekrardan root kelimesini kullanmamam gerektiğini düşünerek 0 12 * * * root /home/... içerisindeki root kelimesini kaldırdım. yani 0 12 * * * /home/... şeklinde yazdım ve crontabım şuanda hamdolsun sorunsuz bir şekilde çalışıyor. katkılarından dolayı herkese teşekkürler, kolay gelsin....

Share this post


Link to post
Share on other sites

merhaba arklar aynı sorun bende de var. crontab oluşturdum bir scripti manuel çalıştırınca sorun yok ama crontabba girmeme rağmen çalıştıramadım. Scriptin dizininde mi problem var crontab kullanıcısında mı anlamadım. Hem root hem kendi kullanıcım için oluşturdum olmadı. yardım ederseniz çok sevinirim. crontab -l komutuyla aşağıdaki çıktı geliyor ama çalışmıyor. */1 * * * * /home/halil/Desktop/halil/cronjob.sh

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...