Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Linux Command


Afush

Öne çıkan mesajlar

Hoca linux commandlleri hakkında basit bir kaç egzersiz verdi bi kaç gün sonraya,sorulardan biri Crontab kullanılarak her günün başında /tmp directory sinin içindekileri temizleyecek ama directory yi silmeyeck bir background job nasıl yaratılır açıklayınız şeklinde.
Nasıl yaratılır açıklayabiliyorum da,tam olarak hangi command i girdiğimizde bunu yapar o kısımda tıkanmış durumdayım.Biri bana yardım edebilir mi?
Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici
Şu scripti /etc/cron.daily klasörüne koy:


#!/bin/sh
umask 022

PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH

if [ -f /etc/sysconfig/cron ] ; then
. /etc/sysconfig/cron
fi

OMIT=""
for i in $OWNER_TO_KEEP_IN_TMP ; do
OMIT="$OMIT ( ! -user $i )"
done

cleanup_tmp ()
{
MAX_DAYS=$1
shift
DIRS_TO_CLEAR="$@"

if [ $MAX_DAYS -gt 0 ]; then
for DIR in $DIRS_TO_CLEAR ; do
test -x /usr/bin/safe-rm && {
find $DIR/. $OMIT ! -type d ! -type s ! -type p
-atime +$MAX_DAYS -exec /usr/bin/safe-rm {} ;
} || echo "Error: Can not find /usr/bin/safe-rm"
find $DIR/. -depth -mindepth 1 $OMIT -type d -empty
-mtime +$MAX_DAYS -exec /usr/bin/safe-rmdir {} ;
done
fi
}

cleanup_tmp ${MAX_DAYS_IN_TMP:-0} ${TMP_DIRS_TO_CLEAR:-/tmp}
cleanup_tmp ${MAX_DAYS_IN_LONG_TMP:-0} ${LONG_TMP_DIRS_TO_CLEAR}

exit 0



Command derken ne dedin anlamadım. Cron için script yazman gerek. KOmut olarak çlışmaz böyle bir iş için.

Ha, şöyle olur: bu scripti yazarsın, home klasörüne koyarsın clean_tmp diye, sonra crontab clean_tmp komutu ile bunu home'dan cron klasörüme atarsın.

Örnek:

root terminaldeyiz.

şu komutu gir yüklemek için.

crontab /home/gerge/clean_tmp

silmek istiyorsan:

crontab -r clean_tmp

Eğer kullanıcı /etc/cron.allow'daysa kullanabilir, /etc/cron.deny'daysa kullanamaz.

Şimdi büyülü kelimeyi yazıyorum: man page
Link to comment
Sosyal ağlarda paylaş

GERGE cok ArchLinuxumsu bir cozum onermissin cocuga.

Her yerde /etc/cron.daily calismaz.

crontab -e

ile editleyip ;

0 0 * * * find /tmp -type f | xargs rm -f

satirini ekleyerek, istedigin isi halledebilirsin. Hatta bu ;

0 0 * * * rm -f /tmp/*

ile de hallolur.

NOT: Eger ki crontab -e calismiyorsa,

VISUAL=vi
VISUAL=pico
VISUAL=nano
VISUAL=emacs
VISUAL=jed

lerden birini dene. Elbet tutturursun diye umuyorum :)
Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici
Arch'da yapmadım ben bunu. Red Hat'den kalma.

Ayrıca bazı dağıtımlarda Visual yerine EDITOR yazman gerekebilir ve direk crontab diye kullanırsan karşına büyük ihtimal vi çıkar. Bunu da ben ekleyeyim. nano en kolaydır. F3 kayıt, F2 çıkış nanoda. Vi'yi bilmiyorsan hiç kasma.
Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici
Doğru, ama ben hala script'İn daha uygun olacağını düşünüyorum. Çalışmadığı bir dağıtıma denk gelmedim, cron.daily'in olmadığı bir dağıtım olabilir, doğru, ama bunun için programcının özel alarak cron'un bu özelliğini kaldırması gerikiyor. Ama script coreutils kullanmayan (mesela busybox olabilir) bir sistemde çalışırmı bilmioyurm.
Link to comment
Sosyal ağlarda paylaş

Bu crond ya embedded bisey degil :) run-parts kullanilarak yapiliyor sonucta o olay da. Yani istersen cron.hourly cron.perminute seklinde directory ler yaratip, ilgili cronjob lari girersin ( run-parts kullanarak ) onlar da olur.

Sonucta Linux/Unix bu, senin neyi nasil istedigine bakar, gel gelelim bazi Linux dagitimlarinda ( populer olmayan ) bu cronjoblar default olarak gelmemekle beraber, henuz gelen bir Unix de gormedim ( belki FreeBSD ye geliyordur ? ), HP-UX lar dahil.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...