Rakam diri sendiri

Di suatu ketika dahulu, saya pernah terbaca artikel di laman sesawang kegemaran ramai, Lifehacker.com  tentang idea merakam diri sendiri untuk tengok balik apakah kita akan bangga dengan kehidupan sendiri. Senang kata, realiti tv tentang diri sendiri untuk sendiri. Sehinggalah baru-baru ini saya terasa ingin mencubanya. Kehidupan saya lebih banyak di dalam bilik di depan komputer, jadi amat sesuailah jika saya boleh menggunakan kamera web untuk merakam. Kepada yang berminat dan ingin senang hidup, bolehlah mencuba perisian-perisian yang menjadikan webcam sebagai cctv. Walaubagaimanapun itu bukan cara saya. Saya lebih suka menulis skrip sendiri. Oleh itu, di sini saya akan mengajarkan bagaimana menggunakan crontab dan skrip shell untuk merakam diri sendiri pada jangka masa tertentu. Semestinya saya menulis untuk pengguna Ubuntu sahaja. Saya tidak tahu tentang distro-distro lain, tetapi selagi linux mungkin sama.

Jom kenal crontab dulu. Crontab adalah satu jadual untuk komputer (ubuntu) menjalankan aktiviti yang ditetapkan oleh pengguna, pada waktu tertentu yang ditetapkan oleh pengguna. Dalam tutorial kali ini saya ingin mengambil gambar pada setiap 10 minit. Jadi saya boleh menggunakan crontab, menjadualkan aktiviti mengambil gambar pada setiap 10 minit. Baca lanjut tentang crontab ubuntu di sini.

Cara-caranya ialah

  1. Bina skrip yang mengambil gambar
  2. Nyatakan di crontab supaya menjalankan aktiviti ini pada setiap 10 minit

Buat srip shell

Bina skrip shell untuk mengambil gambar menggunakan webcam. Saya menggunakan webcam logitec c310.

  1. Bina sh file, <filename>.sh ( contoh ; cctv.sh, aku-rakam-aku.sh , ....dll )
  2. Salin dan tampal kod di bawah ke dalam fail yang di bina di 1.

    #!/bin/sh
    filename=$(date +'%Y%m%d_%H%M%S')
    
    streamer -c /dev/video0 -s 800x600 -o ~/cctv/$filename.jpeg
  3. Simpan (save) fail.
  4. Cuba jalan kan file. buka terminal dan taip

    sh direktori/fail/sh/filename.sh
  5. Pastikan skrip berfungsi, lihat di dalam direktori untuk simpan fail sekiranya gambar ada maknanya anda skrip anda berjaya. ke peringkat kedua, masukkan kedalam crontab.
  6. Penerangan :

    1. Baris pertama #!/bin/sh => menyatakan kod ini ialah skrip shell
    2. filename=$(date +'%Y%m%d_%H%M%S') => menbuat pembolehubah untuk nama fail/gambar yang akan dihasilkan. Fail/gambar dinamakan dengan format tarikh supaya setiap kali gambar baru yang terhasil tidak akan mempunyai nama yang sama dengan sedia ada dan mengelakkan pertindihan gambar.
    3. streamer -c /dev/video0 -s 800x600 -o ~/cctv/$filename.jpeg => menggunakan perisian streamer untuk emnangkap gambar. Saudara juga boleh menggunakan perisian lain seperti ffmpeg. Cara guna streamer boleh dipelajari selepas install streamer dan taip streamer --help di terminal.

Menggunakan crontab

  1. Berhentikan crontab.

    sudo service crontab stop

    * crontab mula pada setiap kali reboot, jadi saya lebih suka jika kita hentikan dulu sebelum mengubahsuainya. ini mungkin tidak perlu tapi belajar ikut turutan atau belajar cara terbaik akan pembelajaran yang berguna untuk masa hadapan.

  2. Ubahsuai crontab, tambah aktiviti, crontab -e

    • anda mungkin diberi pilihan untuk mengunakan text editor, pilih nano sebab ianya senang guna.
    • satu fail yang berisi komen tentang penggunaan crontab dipaparkan.
    • gerakkan cursor paling bawah dan salin tampal kod ini.

      */10 * * * * sh direktori/fail/sh/filename.sh
    • simpan fail
  3. Mulakan balik crontab yang di hentikan tadi. dengan ini, pada setiap 10 minit skrip akan dijalankan. Oleh itu setiap 10 minit gambar akan diambil dan disimpan di /direktori/untuk/simpan/gambar.
  4. Penerangan crontab :

    1. Crontab ditulis dengan format (minit) (jam) (hari) (bulan) (tahun) (arahan)
    2. */10 * * * * sh direktori/fail/sh/filename.sh => bermaksud jalankan arahan " sh direktori/fail/sh/filenam.sh " pada setiap tahun, setiap bulan, setiap hari, setiap jam, setiap kali bila bila waktu dibahagikan dengan 10 menghasilkan sifar (*/10). arahan ini juga boleh ditulis dengan lebih jelas seprti begini :

      0,10,20,30,40,50 * * * * sh direktori/fail/sh/filename.sh
    3. Bacaan lanjut tentang crontab bolehlah dibaca di sini. Bagi mereka yang ingin mendalami tentang server ilmu cronjobs (di server dipanggil cronjobs, benda yang sama dengan crontab) adalah ilmu yang boleh menyenangkan hidup.

Kreatifkan diri saudara denggan crontab, saudara mungkin tak perlukan gambar waktu 12 malam -7 pagi. Jadi bina beberapa cron yang bertindak berbeza pada waktu berbeza. Boleh juga guna ini untuk mengambil penggambaran time lapse cuaca.

Sekian selamat mencuba. Sekiranya terdapat sebarang ketidakfahaman dan permasalahan sila tanya di komen di bawah. Dengan hati terbuka sedaya mampu saya akan menjawabnya.

artikel ini diubahsuai dan disiarkan juga di sumbu.org