2012-03-12 10 views
6

Tôi mới dùng chế độ org và đã viết một tệp với Babel bằng một vài ngôn ngữ. Tôi muốn các tập tin cho mỗi ngày, chạy mã trong tập tin org, trên một máy chủ từ xa - Tôi không nghĩ rằng đó là quan trọng.Emacs: xử lý hàng loạt các tệp chế độ org qua crontab

Tôi muốn làm điều đó với cron. Tôi đã cố gắng một cái gì đó giống như

crontab emacs -batch -l my_file.org

+2

Có phải 'crontab emacs -batch -l my_file.org' bạn đang gõ gì vào dòng lệnh không? Nếu vậy, hãy đọc 'man crontab' trước, bởi vì đó không phải là lời gọi hợp lệ trên bất kỳ hệ thống nào tôi đã thấy. Bạn sẽ cần phải chắc chắn rằng khi cron chạy nó biết nơi để tìm cả emacs và tập tin org của bạn, do đó, bằng cách sử dụng đường dẫn tuyệt đối trong mục crontab có lẽ là một ý tưởng tốt. – phils

+0

Chào mừng bạn đến với stackoverflow! Không cần phải ký tên vào bài viết của bạn với tên hoặc lời chào. – cm2

Trả lời

2

Mục 14.12 của cuốn cẩm nang Org sẽ là một điểm khởi đầu tốt để thực hiện hàng loạt. Phiên bản trực tuyến của nó có thể được tìm thấy tại http://orgmode.org/manual/Batch-execution.html. Nó giới thiệu một ví dụ sử dụng org-babel-tangle, vì vậy bạn có thể muốn thay thế org-babel-tangle bằng chức năng của riêng bạn.

2

Tôi có điều này trong crontab:

emacs -batch -l ~/.emacs -eval '(org-batch-agenda "w")' > ~/org/aux/agenda-export.txt 

này sử dụng một chương trình tùy chỉnh Tôi đã đã thiết lập (C-c a w trong orgmode) và xuất khẩu sang một file văn bản. Sau đó tôi gọi tệp đó qua conky để hiển thị chương trình làm việc của tôi trên hình nền của tôi.

Bạn đã nhận được giải pháp này chưa?

mỗi ý kiến, bạn sẽ muốn làm điều này qua:

crontab -e 

này mở ra file crontab của bạn để chỉnh sửa. Thêm dòng thời gian thực hiện (ngày giờ trong tháng của ngày trong tuần) và lệnh bạn muốn chạy (bắt đầu bằng emacs ...) và bạn nên đặt. Xem the crontab man page để biết thêm chi tiết nếu bạn không quen thuộc).

Về cơ bản, tìm hiểu cách thực thi lệnh org thành công từ dòng lệnh và sau đó thêm nó (bắt đầu với các cột cho biết cron khi nào chạy) qua crontab -e.