Halo saya menulis skrip baris perintah sederhana yang seharusnya mengambil tangkapan layar saya setiap 5 menit.
(menggunakan program "impor" ImageMagick)
di sini adalah skrip (shottr.sh):
#! / bin / sh
PTH="/home/username/images"
NM=`date +%j`_`date +"%F %k:%M"`
/usr/bin/import -window root -resize 1024 "$PTH/$NM.png" &
echo "Screenshot" | festival --tts &
ini berfungsi dengan baik jika saya mengeksekusi dengan tangan yaitu:
# ./shottr.sh
atau
#sh shottr.sh
cron diatur seperti ini:
* / 5 * * * * / bin / sh /home/username/scripts/shottr.sh
skrip itu sendiri sedang dieksekusi (saya mendengar suara berkata: "Screenshot") tetapi tangkapan layar yang sebenarnya tidak diambil.
PS: Yakinlah bahwa itu BUKAN masalah izin (saya menempatkan doa "sentuhan" sederhana dan file dibuat)
mungkin jika dijalankan dari cron ... tidak memiliki "jendela" sehingga tidak dapat mengambil tangkapan layar entah dari mana ?? Jika itu masalahnya, lalu bagaimana saya bisa mengatasinya?
NM=$(date "+%j_%F %k:%M")
(tidak perlu berjalandate
dua kali). Menempatkan nomor hari Julian pertama reruntuhan sortability dari nama file dan Anda mungkin ingin mempertimbangkan untuk tidak memasukkan spasi.Jawaban:
Saat Anda menjalankan skrip
cron
darinya, ia tidak memiliki akses keDISPLAY
variabel lingkungan Anda , yang menunjukkan bagaimana X11 menampilkan apa yang berinteraksi. Anda mungkin bisa membuatnya bekerja dengan menambahkan yang berikut ke skrip Anda:Ini mengasumsikan bahwa Anda
DISPLAY
selalu:0
, yang benar jika Anda masuk pada konsol tetapi tidak benar jika Anda menjalankan X jarak jauh.sumber