Apakah cron yang datang dengan OS X mencatat aksinya di mana saja?
Saya tidak mencari output dari pekerjaan cron tertentu, melainkan mencatat apa yang dilakukan cron. Pada beberapa mesin linux yang saya periksa, ada /var/log/cron
yang memiliki konten seperti:
Apr 26 11:00:01 localhost crond[27755]: (root) CMD (/root/bin/mysql-backup)
Apr 26 11:01:01 localhost crond[27892]: (root) CMD (run-parts /etc/cron.hourly)
Apr 26 11:07:01 localhost crond[28138]: (root) CMD (/usr/local/bin/python /home/
user1/scripts/pythonscript.py)
Apr 26 11:18:18 localhost crontab[28921]: (user2) LIST (user2)
Apr 26 11:18:22 localhost crontab[28929]: (user2) BEGIN EDIT (user2)
Apr 26 11:18:59 localhost crontab[28929]: (user2) REPLACE (user2)
Ini menunjukkan ketika pekerjaan dijalankan, ketika pengguna melihat atau mengedit crontab, dll. Hal ini tidak ditemukan di mesin Snow Leopard saya.
macos
osx-snow-leopard
cron
Doug Harris
sumber
sumber
Saya menemukan cara untuk mencatat aktivitas pekerjaan cron saya tanpa mengubah masing-masing untuk memulai pekerjaan.
The man page cron menyebutkan
-x
opsi yang memungkinkan "menulis debugging informasi ke output standar." Efek samping dari ini adalah bahwa ini juga menulis informasi dasar untuk kesalahan standar. Data yang dikirim ke kesalahan standar ditulis/var/log/system.log
.Ini menghasilkan data seperti ini yang ditulis untuk
/var/log/system.log
:Karena cron sendiri diluncurkan oleh launchd, untuk mengaktifkan ini, saya harus mengedit
/System/Library/LaunchDaemons/com.vix.cron.plist
sehingga sekarang terlihat seperti:Saya menggunakan di
-x misc
sini, tetapi tampaknya tidak masalah pilihan mana yang saya gunakan. Menambahkan-x
memulai logging aktivitas pekerjaan. Saya juga menambahkan StandardErrorPath untuk menulis/var/log/cron.log
alih-alih default/var/log/system.log
.Lalu bongkar dan muat ulang ini:
sumber
OSX sekarang cenderung menggunakan launchd daripada cron - Apple dev doc - jadi mungkin tidak ada dalam cron untuk login.
Gunakan launchctl untuk mengontrol level logging dari launchd. Info log Som muncul di system.log tetapi lebih banyak di aplikasi konsol -> Semua pesan
sumber
0 0 7 11 0 happybirthday
.Setidaknya pada Yosemite, cron log output sebagai
mail
pesan, jadi gunakanmail
untuk membacanya.sumber
cron
mengirimkan (jika tidak dihapus) output ke pemilik pekerjaan melalui surat. Jika semua output dialihkan, tidak ada surat yang dikirim. (Bahkan jika pesan dikirim, saya tidak yakin apakah itu menunjukkan perintah yang dieksekusi.) Pertanyaannya adalah bagaimana administrator dapat melihat semua perintah yangcron
telah dilakukan. Untuk menggunakan jawaban Anda, seseorang harus melihat file surat semua orang.