2012-04-23 25 views
5

Tôi có một số tập lệnh tôi muốn chạy mỗi sáng lúc 6 giờ sáng. Các kịch bản này tạo ra một số bản pdf đầu ra đồ họa thành một tệp: foo.pdfTự động gửi e-mail đầu ra đồ họa pdf tại các thời điểm cụ thể từ R

Tôi muốn hệ thống của mình (giả sử Win 7,> = R 2.13) gửi email cho tôi khi hệ thống đã chạy xong tập lệnh.

Gói nào tốt nhất - và cách mạnh mẽ nhất để thiết lập - để các báo cáo này được gửi qua email trực tiếp cho tôi qua tệp đính kèm từ R?

Có bất kỳ tiện ích mở rộng 'thú vị' nào cho tiện ích mở rộng này (ví dụ như sink() xuất văn bản báo cáo-ing vào nội dung của email) không?

Cảm ơn trước vì lời khuyên nào.

+2

Hãy xem câu hỏi này cho phần gửi email - http: // stackoverflow.com/questions/2885660/how-to-send-email-với-tệp đính kèm-from-r-in-windows/9131917 # 9131917 – thelatemail

+0

Gói 'brew' là hệ thống templating cho R và có thể đủ điều kiện làm tiện ích 'tuyệt vời' để viết văn bản của nội dung email. – Spacedman

Trả lời

3

Bạn có thể khai thác sức mạnh của package that can handle emails được kết hợp với công việc chron. Trên Windows 7, tôi đã đạt được một cái gì đó giống như thế này bằng cách sử dụng Windows Task Scheduler. Về cơ bản, bạn đặt nó để chạy một tập lệnh cụ thể tại một thời điểm xác định.

2

Tôi có một tập lệnh chạy hàng ngày và có rất nhiều vấn đề để chạy nó. Hãy xem liên kết của Roman cho phần đính kèm và mã R trước tiên. Đây là khoảng the-R không một phần trong Windows 7.

Tôi đã có vấn đề chạy kịch bản R trực tiếp từ Windows Task Scheduler, vì vậy tôi lên kế hoạch một tập tin batch để chạy hàng ngày như sau:

@echo on 
"C:\Rpath\R-2.15.1\bin\i386\Rcmd.exe" BATCH "C:\filepath\filetorun.R" 

Đó là về đơn giản nhất bạn có thể nhận được, nhưng Quick R là điểm bắt đầu.

Tùy thuộc vào cài đặt của máy tính của bạn, bạn có thể phải fiddle với công cụ lập lịch tác vụ. Nếu đó là loại máy chủ luôn bật, thì bạn không nên có quá nhiều vấn đề (và bạn biết mình đang làm gì). Nếu bạn phải đăng xuất và sử dụng mật khẩu để đăng nhập hoặc truy cập vào một ổ đĩa được chia sẻ, bạn sẽ phải thực hiện một số thao tác sau. Ngoài ra, tôi không biết liệu quyền quản trị có cần thiết hay không.

Mở Task Scheduler, tạo một tác vụ mới và mở cửa sổ thuộc tính của nó.

Dưới mục Chung, hãy kiểm tra tài khoản người dùng và chọn "Chạy xem người dùng có đăng nhập hay không" và bỏ chọn "Không lưu trữ mật khẩu". Điều này sẽ cho phép kịch bản của bạn chạy nếu bạn đã đăng xuất (Tôi không nghĩ rằng nó hoạt động khi bị khóa). Khi bạn bấm Ok, nó sẽ yêu cầu mật khẩu của bạn.

Thiết lập cơ bản: Trình kích hoạt "Bật lịch" và Nâng cao được bật. Trong Hành động, chọn "Bắt đầu chương trình" với Chương trình/tập lệnh dưới dạng tệp .bat.

Trong Điều kiện, bỏ chọn "Bắt đầu tác vụ chỉ khi comp không hoạt động" và chọn "Đánh thức máy tính để chạy tác vụ này". Trong Cài đặt, chọn "Cho phép tác vụ chạy theo yêu cầu", chọn "Nếu tác vụ đang chạy không kết thúc .." và ở dưới cùng, hãy chọn "Dừng phiên bản hiện tại". Các tùy chọn này có thể cần thiết, mặc dù tôi không chắc chắn về các tùy chọn này.

Bí quyết khác là nếu công ty của bạn có bạn chuyển đổi mật khẩu mỗi lần trong một thời gian. Mở và đóng nhiệm vụ sau khi thay đổi để nó yêu cầu mật khẩu của bạn một lần nữa. Nhập mới hoặc nếu không nó không thể đăng nhập và sẽ không chạy kịch bản của bạn.

Các vấn đề liên quan