HARAP DICATAT : Saya telah membaca semua pertanyaan serupa kembali. cron, paths, env variabel dan sebagainya, tetapi tidak menemukan satupun yang menawarkan solusi untuk masalah khusus saya.
Saya memiliki skrip yang membuat beberapa dump MySQL dan kemudian menghapus yang lama seperti ini:
/usr/bin/find "/home/bkp/dbdump" -name "*.gz" -mtime +5 -delete
( perintah di atas telah dimodifikasi dari perintah asli saya dengan saran dari komentar )
Namun, file tidak pernah dihapus ketika cron menjalankan skrip ini. Pengguna cron adalah root.
Catatan debugging
Jika saya menjalankan skrip secara manual di mana perintah muncul, itu menghapusnya seperti yang diharapkan.
Jika saya menjalankan perintah find di atas sendiri dari baris perintah sebagai root, ia menghapusnya seperti yang diharapkan (dan dengan -cetak ia mengembalikan daftar file yang lebih lama dari 5 hari seperti yang diharapkan)
Saya juga menambahkan pernyataan path eksplisit ke crontab root, tapi
itu tidak mengubah apa pun.Cron tidak mengirim kesalahan, dan jika saya mem-pipe operasi find ke file log,
yang muncul kosong atau tidak dibuat sama sekali.Saya menggunakan server Ubuntu 14.04.03 LTS.
/usr/bin/find /home/bkp/dbdump/*.gz -mtime +5
cron
perintah dijalankan melalui shell, dan shell memperluas wildcard.
cron
harus mengirim email dengan pesan kesalahan dan keluaran. Apakah Anda mendapatkan email seperti itu dari pekerjaan ini?