Tinjauan singkat: Saya memiliki skrip yang akan mencadangkan setiap hari repositori kode sumber saya dari SVN ke tarball untuk hari itu. Saya telah menguji skrip dan berfungsi dengan baik selama saya menjalankannya sebagai sudo, karena kepemilikan direktori keluaran.
Jadi masalahnya adalah saya ingin menjalankan ini setiap hari, jadi saya menaruh tautan di direktori /etc/cron.daily. Berikut adalah isi direktori.
thom@spenser:/etc/cron.daily$ ls -l
total 60
-rwxr-xr-x 1 root root 189 2011-09-14 02:21 apport
-rwxr-xr-x 1 root root 15535 2011-10-06 11:30 apt
-rwxr-xr-x 1 root root 314 2011-08-08 16:57 aptitude
lrwxrwxrwx 1 root root 24 2012-02-28 11:05 backup -> /usr/local/bin/backup.sh
-rwxr-xr-x 1 root root 502 2011-06-08 11:48 bsdmainutils
-rwxr-xr-x 1 root root 256 2011-10-06 04:04 dpkg
-rwxr-xr-x 1 root root 372 2011-10-04 16:50 logrotate
-rwxr-xr-x 1 root root 1353 2011-07-27 07:17 man-db
-rwxr-xr-x 1 root root 606 2011-08-17 09:16 mlocate
-rwxr-xr-x 1 root root 249 2011-06-24 05:36 passwd
-rwxr-xr-x 1 root root 2417 2011-07-01 17:25 popularity-contest
-rwxr-xr-x 1 root root 383 2011-09-30 15:09 samba
-rwxr-xr-x 1 root root 3594 2011-09-19 20:07 standard
thom@spenser:/etc/cron.daily$
Masalahnya adalah itu tidak pernah berjalan. Berikut adalah izin untuk skrip itu:
thom@spenser:/etc/cron.daily$ ls -l /usr/local/bin/backup.sh
-rwxr-xr-x 1 root root 260 2012-02-28 11:03 /usr/local/bin/backup.sh
Ide ide?
Jawaban:
Sudah mencoba ini
Ternyata file update.ubuntu saya tidak muncul. Juga perhatikan bahwa file saya memiliki ekstensi (memiliki titik di dalamnya).
Langkah-langkah untuk memperbaikinya.
run-parts --test /etc/cron.daily
, kali ini file saya muncul!sumber
Bisa jadi satu dari beberapa hal:
Jalur root:
src: https://help.ubuntu.com/community/CronHowto
Atau cukup gunakan jalur lengkap untuk setiap perintah dalam skrip Anda:
/bin/ls
alih-alihls
misalnya. (which ls
di baris perintah untuk jalur).Ada bug aneh tentang titik-titik dalam nama file yang dilaporkan di sini . Mungkin memperluas ke file yang Anda tautkan, meskipun ini tampaknya tidak mungkin.
Apakah Anda menyimpan output dari file cadangan? Letakkan sesuatu seperti ini di baris pertama, untuk membantu menentukan apakah itu tidak berjalan sama sekali atau berjalan tetapi gagal di beberapa titik.
/bin/echo "Attempting to run backup" >> /path-to-home/backup.log
Atau coba tambahkan skrip ke file crontab secara langsung:
akan berjalan pada pukul 15:30 setiap hari jika mesin hidup. gunakan * * * * * saat pengujian untuk berjalan satu menit sekali sampai Anda membuatnya berfungsi.
sumber
Grep syslog Anda untuk pesan seperti;
file perlu dibatasi hingga (mencukupi) di 644):
sumber