Menjalankan Cron Sebagai Pengguna Tertentu

a-must-have-cron-job)*foto dari: https://www.sebastien-han.fr/blog/2014/08/18/a-must-have-cron-job-on-your-openstack-cloud/

Ini PR yang nyita kepala sampe 4 harian. Dan baru nemu penyebab dan solusi barusan.

Jadi gini. Saya menjalankan cron untuk rsync file tiap 2 menit sekali. File yang diambil berada di mesin lain di seberang benua sana.
SSH yang diterima hanya untuk user dukun.

Kira-kira begini isi baris rsync nya:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
--progress dukun@192.168.2.2:/home/dukun/data_$(date --date="1 days ago" +"%d%m%Y").txt \
/home/dukun/data_$(date --date="1 days ago" +"%d%m%Y")/. 2>&1 >> /home/dukun/err.log

Trus isi cronjobnya begini:

*/2 * * * * sh /home/dukun/salin.sh 2>&1 >> /home/dukun/err.log

Hasil errornya:

Warning: Permanently added '192.168.2.2' (ECDSA) to the list of known hosts.
Permission denied (publickey).
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.0]

Saya menambahkan Cronjob dengan perintah ini (ini salah):

$ sudo crontab -e

Harusnya seperti ini:

$ crontab -u dukun -e

Dah gitu aja.
*brb tutup tiket.

Estu
)*cuti adalah kata lain pindah tempat ngetik.