При контакте с crontab записями важно сделать различие между системным кроном уровня, обычно в одном из этих местоположений:
Или разнообразие уровня пользователя, которые на самом деле хранятся в этом каталоге, /var/spool/cron
:
$ sudo ls -l /var/spool/cron/
total 0
-rw------- 1 saml root 0 Jun 6 06:43 saml
Вы получаете доступ к ним с командой crontab -e
как определенный пользователь. Даже корень может иметь их.
Примером, который Вы включали, является тип строки, которую Вы указали бы при создании системного типа уровня cron
. Единственной разницей является включение пользователя, с которым должна быть выполнена команда. Это не необходимо при создании a crontab -e
тип записи, так как это избыточно, учитывая crontab запись уже определяется пользователю, который создал его.
Так просто изменение Вашей строки к этому:
0 0 * * 1 hostname >> /tmp/hostname.txt
Устраняет Вашу проблему.
Вы будете обычно видеть запись в своем основном /etc/crontab
файл как так:
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Они управляют, когда скрипты в соответствующих каталогах будут запущены. Так ежедневная газета каждое утро в 4:20 мое местное время.
Таким образом, если Вы хотите выполнить команду hostname >> /tmp/hostname.txt
ежедневно, Вы поместили его в сценарий, делаете его исполняемым файлом и вставили файл сценария cron.daily
каталог.
/etc/cron.daily/catchhostname.bash
#!/bin/bash
hostname >> /tmp/hostname.txt
cron.daily
# ls -l |grep catch
-rwxr-xr-x 1 root root 118 Feb 28 2013 catchhostname.bash
Это сценарий образца в Perl для размещения мультипартаторов. Вам нужно немного адаптировать:
#!/usr/bin/env perl
use strict; use warnings;
use WWW::Mechanize;
my $m = WWW::Mechanize->new(
autocheck => 1,
agent_alias => 'Mozilla',
cookie_jar => {},
ssl_opts => {verify_hostname => 0},
quiet => 0,
);
$m->get("http://domain.tld");
$m->post('https://domain.tld/send',
Content_Type => "form-data",
Content => [
'picture[uploaded_data]' => 'foobar',
file => [ '/path/to/image', 'image_name', 'Content-Type' => 'image/jpeg' ]
]
);
print $m->content;
чек http://search.cpan.org/~aas/http-message-6.06/lib/http/request/common.pm
Я думаю, что - форма
опция должна делать то, что вы Нужно:
curl --form "picture[uploaded_data]=@picture.jpg;type=image/jpeg" http://www.example.com/example/