Pandoc saat menggunakan penurunan harga R dengan perintah cron

Saya mencoba membuat perintah cron yang akan menggunakan penurunan harga R untuk membuat halaman html baru pada interval tertentu. Saya menemukan ini adalah masalah pandoc.

Saya mendapatkan pesan kesalahan berikut ketika saya mencatat perintah cron saya

Kesalahan: pandoc versi 1.12.3 atau lebih tinggi diperlukan dan tidak ditemukan (lihat halaman bantuan ?rmarkdown::pandoc_available). Eksekusi dihentikan

Apakah ada sedikit kode sederhana yang dapat saya tambahkan ke file .Rmd untuk mengarahkannya ke pandoc saat menjalankan perintah cron?


Mempertahankan postingan aslinya. Itu di bawah paragraf ini.

Semua yang ingin saya lakukan adalah file berjudul test_doc.Rmd.

Ketika saya menjalankan perintah berikut pada baris perintah, itu berhasil:

RScript -e "library(rmarkdown); render(\"/path/test_doc.Rmd\")"

Namun, ketika saya menjalankannya di crontab, saya tidak berhasil. Saya menjalankan versi ini:

25      10      *       *       *       RScript -e "library(rmarkdown); render(\"/path/test_doc.Rmd\")"

saya bingung. Saya tidak percaya ini masalah jalur file, karena saya memiliki skrip R lain (bukan rmarkdown) yang berjalan di crontab dan berfungsi. Saya menggunakan Mac OS X 10.10.5


person Aaron M    schedule 21.12.2016    source sumber
comment
Ingin tahu apakah Anda pernah berhasil menyelesaikan ini   -  person OganM    schedule 07.08.2019


Jawaban (3)


Hal yang sama terjadi pada saya, dan saya menemukan jawabannya di postingan terkait mengenai pesan kesalahan Anda (yang bahkan belum pernah saya lihat):

Kesalahan: pandoc versi 1.12.3 atau lebih tinggi diperlukan dan tidak ditemukan (lihat halaman bantuan ?rmarkdown::pandoc_available). Eksekusi dihentikan

Anda harus menentukan variabel lingkungan RSTUDIO_PANDOC sebelum merender seperti ini:

Rscript -e 'Sys.setenv(RSTUDIO_PANDOC="/usr/lib/rstudio/bin/pandoc"); rmarkdown::render("test_doc.Rmd")'

Ini akan menyelesaikan masalah cronjob Anda. Itu berhasil untuk saya.

Saya berasumsi bahwa sebagian besar pengguna Linux+RStudio telah menginstal pandoc di jalur /usr/... ini. Jika tidak, tanyakan lokasi menggunakan Sys.getenv("RSTUDIO_PANDOC") dari sesi interaktif tempat rajutan bekerja, dan gantikan jalur pada perintah di atas.

person Gregor    schedule 21.11.2020

Mencoba

25 10 * * *   cd /path && Rscript -e 'rmarkdown::render("test_doc.Rmd")'

yang menghindari

  1. Jalur lengkap dan memberikan rmarkdown dan knitr direktori kerja yang lebih baik
  2. Kebutuhan untuk 'mengutip tanda kutip' dengan menempatkan apostrof di luar dan tanda kutip ganda standar di dalam.
person Dirk Eddelbuettel    schedule 21.12.2016
comment
Saya masih belum bisa menjalankan ini di crontab (di terminal). Mungkinkah ini masalah izin? Atau ada masalah dengan paketnya? - person Aaron M; 21.12.2016
comment
Apakah Anda menggunakan /etc/crontab atau crontab per pengguna? Saya selalu memulai hanya dengan touch /tmp/BeenHereNowDeleteMe.txt atau semacamnya dan membangunnya dari sana. - person Dirk Eddelbuettel; 21.12.2016
comment
Saya telah menggunakan crontab per pengguna. - person Aaron M; 21.12.2016

Tambahkan path ke awal cron Anda, dan arahkan output untuk tujuan debugging:

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

*/5 * * * * cd /path/to/script/ && Rscript -e 'library(rmarkdown); rmarkdown::render("your_script.Rmd")' >/path/to/script/cron.log 2>/path/to/script/cronerr.log
person titaniumtroop    schedule 28.03.2017