macOS'da /tmp/ Dizini

Yaz/boz tahtası...

Gündelik işleri yaparken bazen denemeler yapmak için çeşitli dosyalar ya da dizinler oluşturmak gerekebilir.

Deneme amaçlı yüzlerce dosya ya da dizin oluşturup daha sonra bu oluşan çöp dosyaları silmek ya da silmeyi unutmamak size ilave bir yük oluşturabilir.

İşte bu tip durumlarda çöplük olarak kullanabileceğimiz bir yer var: /tmp/. Aslında bu lokasyon gizli bir yerde durur ve kolayca erişebilmemiz için /tmp/ bir kısa yoldur. Asıl amacı, kurduğunuz uygulamalar ya da çalıştırdığınız uygulamalar geçici olarak dosya sistemini kullanıp bilgisayara bir şeyler kaydetmek istediğinde geçici olarak bu alanı kullanır.

Zaten İngilizce temporary kelimesinin kısa yazılışıdır. Sadece uygulamalar değil bizler de kullanabiliriz. Gerçek lokasyonu;

$ echo $TMPDIR

değişkenini ekrana yazdırarak bulabiliriz. İşin asıl güzel kısmı bu dizinin altındaki dosyaları silmekle uğraşmamamız. Eğer bir uygulama bu alanı kullanıyorsa, uygulama kapanırken bu dizinden oluşturduğu dosyalar otomatik olarak silinir.

Siz kullanıyorsanız yine aynı şekilde eğer dosyalara herhangi bir erişim yoksa 3 gün sonra bu dosyalar da otomatik olarak silinir. macOS özünde BSD tabanlı bir işletim sitemi olduğu için, periodic.conf kullanır:

$ cat /etc/defaults/periodic.conf

#!/bin/sh
#
# This is defaults/periodic.conf - a file full of useful variables that
# you can set to change the default behaviour of periodic jobs on your
# system.  You should not edit this file!  Put any overrides into one of the
# $periodic_conf_files instead and you will be able to update these defaults
# later without spamming your local configuration information.
#
# The $periodic_conf_files files should only contain values which override
# values set in this file.  This eases the upgrade path when defaults
# are changed and new features are added.
#
# For a more detailed explanation of all the periodic.conf variables, please
# refer to the periodic.conf(5) manual page.
#
# $FreeBSD: src/etc/defaults/periodic.conf,v 1.47 2008/01/08 07:22:43 dds Exp $
#

# What files override these defaults ?
periodic_conf_files="/etc/periodic.conf /etc/periodic.conf.local"

# periodic script dirs
local_periodic="/usr/local/etc/periodic"


# Daily options

# These options are used by periodic(8) itself to determine what to do
# with the output of the sub-programs that are run, and where to send
# that output.  $daily_output might be set to /var/log/daily.log if you
# wish to log the daily output and have the files rotated by newsyslog(8)
#
daily_output="/var/log/daily.out"           # user or /file
daily_show_success="YES"                # scripts returning 0
daily_show_info="YES"                   # scripts returning 1
daily_show_badconfig="NO"               # scripts returning 2

# 110.clean-tmps
daily_clean_tmps_enable="YES"               # Delete stuff daily
daily_clean_tmps_dirs="/tmp"                # Delete under here
daily_clean_tmps_days="3"               # If not accessed for
daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix"
daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group"
                            # Don't delete these
daily_clean_tmps_verbose="YES"              # Mention files deleted

# 130.clean-msgs
daily_clean_msgs_enable="YES"               # Delete msgs daily
daily_clean_msgs_days=                  # If not modified for

# 140.clean-rwho
daily_clean_rwho_enable="YES"               # Delete rwho daily
daily_clean_rwho_days=7                 # If not modified for
daily_clean_rwho_verbose="YES"              # Mention files deleted

# 310.accounting
daily_accounting_enable="YES"               # Rotate acct files
daily_accounting_compress="NO"              # Gzip rotated files
daily_accounting_flags=-q               # Flags to /usr/sbin/sa
daily_accounting_save=3                 # How many files to save

# 400.status-disks
daily_status_disks_enable="YES"             # Check disk status
daily_status_disks_df_flags="-l -h"     # df(1) flags for check

# 420.status-network
daily_status_network_enable="YES"           # Check network status
daily_status_network_usedns="YES"           # DNS lookups are ok

# 430.status-rwho
daily_status_rwho_enable="YES"              # Check system status

# 440.status-mailq
daily_status_mailq_enable="YES"             # Check mail status
daily_status_mailq_shorten="NO"             # Shorten output
daily_status_include_submit_mailq="YES"         # Also submit queue

# 999.local
daily_local="/etc/daily.local"              # Local scripts


# Weekly options

# These options are used by periodic(8) itself to determine what to do
# with the output of the sub-programs that are run, and where to send
# that output.  $weekly_output might be set to /var/log/weekly.log if you
# wish to log the weekly output and have the files rotated by newsyslog(8)
#
weekly_output="/var/log/weekly.out"         # user or /file
weekly_show_success="YES"               # scripts returning 0
weekly_show_info="YES"                  # scripts returning 1
weekly_show_badconfig="NO"              # scripts returning 2

# 999.local
weekly_local="/etc/weekly.local"            # Local scripts


# Monthly options

# These options are used by periodic(8) itself to determine what to do
# with the output of the sub-programs that are run, and where to send
# that output.  $monthly_output might be set to /var/log/monthly.log if you
# wish to log the monthly output and have the files rotated by newsyslog(8)
#
monthly_output="/var/log/monthly.out"           # user or /file
monthly_show_success="YES"              # scripts returning 0
monthly_show_info="YES"                 # scripts returning 1
monthly_show_badconfig="NO"             # scripts returning 2

# 200.accounting
monthly_accounting_enable="YES"             # Login accounting

# 999.local
monthly_local="/etc/monthly.local"          # Local scripts


# Define source_periodic_confs, the mechanism used by /etc/periodic/*/*
# scripts to source defaults/periodic.conf overrides safely.

if [ -z "${source_periodic_confs_defined}" ]; then
        source_periodic_confs_defined=yes
        source_periodic_confs () {
                local i sourced_files

                for i in ${periodic_conf_files}; do
                        case ${sourced_files} in
                        *:$i:*)
                                ;;
                        *)
                                sourced_files="${sourced_files}:$i:"
                                [ -r $i ] && . $i
                                ;;
                        esac
                done
        }
fi

Bu konfigürasyon dosyasında /tmp/ ile ilgili kısım: 110.clean-tmps kısmıdır.

# 110.clean-tmps
daily_clean_tmps_enable="YES"               # Delete stuff daily
daily_clean_tmps_dirs="/tmp"                # Delete under here
daily_clean_tmps_days="3"               # If not accessed for
daily_clean_tmps_ignore=".X*-lock .X11-unix .ICE-unix .font-unix .XIM-unix"
daily_clean_tmps_ignore="$daily_clean_tmps_ignore quota.user quota.group"
                            # Don't delete these
daily_clean_tmps_verbose="YES"              # Mention files deleted

daily_clean_tmps_days değişkeninde 3 gün olarak ön tanımlanmıştır. periodic.conf işletim siteminde periyodik olarak yapılacak işlerin ayarlandığı dosyadır. Dikkat ettiyseniz; günlük, haftalık ve aylık rutin işler tanımlanmıştır. Diğer otomatik yapılan işlerin bilgilerini de bu dosyadan görebilir ve isterseniz değiştirebilirsiniz.

Özetle, /tmp/ dizini altında istediğiniz kadar yaz/boz yapabilirsiniz. Bilgisayarı restart ettiğinizde ya da işlem üzerinden 3 gün geçtiğinde bu dosyalar otomatik olarak silinir. Kafanızı meşgul etmez.