coder@mvo ~ $ rpm -qf =crontab vixie-cron-4.1.20060426-alt3 coder@mvo ~ $ sudo crontab -l # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.EUuzaf installed on Mon Mar 3 20:05:04 2008) # (Cron version V5.0 -- vixie-cron-4.1.20060426-alt3) #minute (0-59), #| hour (0-23), #| | day of the month (1-31), #| | | month of the year (1-12), #| | | | day of the week (0-6 with 0=Sunday). #| | | | | commands 0 21 3 3 1 apt-get install openoffice.org-langpack-ru -y Считаю, что первые две строки в выводе crontab -l абсолютно лишние и даже немного запутывают. Команда печатает на stdout и пользователь не может никакой файл редкатировать. Кроме того, в выводе команды также фигурирует путь к временному файлу (которого не существует кстати), который абсолютно не нужен для пользователя.
При редактировании файла (crontab -e) этой шапки нет, потому что там есть такой код (файл vixie-cron/usr.sbin/cron/crontab.c, ф-ция edit_cmd()): 338 /* ignore the top few comments since we probably put them there. 339 */ 340 x = 0; 341 while (EOF != (ch = get_char(f))) { 342 if ('#' != ch) { 343 putc(ch, NewCrontab); 344 break; 345 } 346 while (EOF != (ch = get_char(f))) 347 if (ch == '\n') 348 break; 349 if (++x >= NHEADER_LINES) 350 break; 351 } Я предлагаю этот код вынести в отдельную ф-цию, после чего использовать её в edit_cmd() и list_cmd().
Created attachment 2596 [details] Предлагаемый патч. Вот патч. (Посмотрим, насколько он ускорит решение проблемы.)
Implemented in 4.1.20060426-alt4
(In reply to comment #3) > Implemented in 4.1.20060426-alt4 Хорошо. Я уже успел отправить свой патч одному из разработчиков OpenBSD (ray@) и он ответил следующее: "I agree with this change, let me see if I can get it into the tree. Thanks!" Т.е., насколько я понял, он их приложит, только когда неизвестно. Возможно, нужно твой патч отправить ему тоже, если твой лучше моего.
Патч (с некоторыми изменениями) был закоммичен в OpenBSD source tree: http://www.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/cron/crontab.c.diff?r1=1.55&r2=1.56