Используйте завихрение для отправки двоичного файла через POST с типом контента multipart/form-data;

При контакте с crontab записями важно сделать различие между системным кроном уровня, обычно в одном из этих местоположений:

  • /etc/crontab
  • /etc/cron.d /*
  • /etc/cron.daily /*
  • /etc/cron.weekly /*
  • и т.д.

Или разнообразие уровня пользователя, которые на самом деле хранятся в этом каталоге, /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
4
30.12.2014, 01:39
2 ответа

Это сценарий образца в для размещения мультипартаторов. Вам нужно немного адаптировать:

#!/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

0
27.01.2020, 21:01

Я думаю, что - форма опция должна делать то, что вы Нужно:

curl --form "picture[uploaded_data]=@picture.jpg;type=image/jpeg" http://www.example.com/example/
1
27.01.2020, 21:01

Теги

Похожие вопросы