Mam hosting na linux.pl. Chce odpalić cron job- wykonywanie skryptu php raz dziennie.
Mam komende w postaci /home/marcus/domains/marcus.xd/publichtml/cron.php
Skrypt nie jest odpalany. Po włączeniu logów dostaje informację, że nie ma dostępu: /bin/sh: /home/marcus/domains/marcus.xd/public
html/cron.php: Brak dostępu

Jak powiniennem ustawić dostępy?

#hosting #php #cron #linux #webdev #programowanie
Jak się zaraz #!$%@? to #!$%@? tego #cron z #docker i zmontuje własnego crona jako submoduł w pythonie do moich skryptów ( ͡° ʖ̯ ͡°)

Co zrobić w momencie gdy cron wyrzuca błędy w postaci:

crond: can't change directory to '/var/spool/cron/crontabs': No such file or directory
Próbowałem nawet ręcznie zrobić mkdirem ten folder, a ten się nadal pruje ( ͡° ʖ̯ ͡°)

Dockerfile: https://pastebin.com/NU5bG3as
@NewEpisode: montujesz jakieś katalogi przy odpalaniu? może nadpisujesz ten katalog?
spróbuj też odpalić jako root na próbę
CMD [ "/usr/sbin/crond", "-u", "root", "-f", "-d8" ]
i wywalić ostatnie USER (może kwestia permissionów chociaż wątpię).
  • Odpowiedz
Spada short interest akcji konopi indyjskich #weedstocks

Całkowite short interest w sektorze konopi indyjskich od ponad roku systematycznie spada, przy czym short interest śledzonego przez nas portfela konopi indyjskich spada z 3,14 mld USD w maju 2021 r. do 1,57 mld USD w grudniu 2021 r. do 632 mln USD obecnie. Śledzimy 100 amerykańskich i kanadyjskich spółek z branży konopi indyjskich składających się z 163 papierów wartościowych (niektóre spółki są podwójnie notowane
lut 03 12:12:01 EndeavourOS CROND[168229]: (root) CMDOUT (Could not connect to D-Bus server: org.freedesktop.DBus.Error.NotSupported: Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUSSESSIONBUSADDRESS instead)

Jak to ogarnąć? Próbowałem skrypt odpalić manualnie jako user - wszystko działa. Jako root rzuca takim błędem.

Skrypt uruchamiany po stronie crona jako root, jednak nie potrafię go skonfigurować żeby odpalał się jako user.
export $(dbus
launch) nic nie daje, zarówno
Skoro notify-send potrzebuje x11 to działania to można to wywołać jakoś na obecnej sesji?


@NewEpisode: Tak ale nie napisze ci jak to zrobić w cronie bo nigdy tego nie potrzebowałem a nie chce mi się teraz szukać by sprawdzić jakie zmienne trzeba wyeksportowąć by to zadziałało i co dodatkowo trzeba jeszcze zrobić przed. Napisałem ci, że możesz to na systemd timerze zrobić.
  • Odpowiedz
Mam mały problem z cronem na home.pl. Za żadne skarby nie potrafię go dobrze skonfigurować tak żeby działały moje reguły.
Każde z poniższych zadań mam jako osobny plik cron-reguła.php wrzucony do głównego folderu ftp.
Co robię źle?
#webdev #serwery #cron

# Campaigns sender, runs each minute.
* * * * * /usr/local/php56/bin/php -q /wizz/apps/console/console.php send-campaigns >/dev/null 2>&1
# Transactional email sender, runs once at 2 minutes.
*/2 * * * * /usr/local/php56/bin/php
Mirki jak rozwiązać następujący problem:
Mam plik, który przelicza punkty.
Z uwagi na dużą ilość danych do przetworzenia skrypt korzysta z "paginacji" tzn. js
aktualizuje parametr GET np. file.php?page=1 --> file.php?page=2
Chciałbym aby plik był wykonywany o danej godzinie np. 10:00
Chciałem skorzystać z crona, ale to będzie kolidować z uwagi tej "paginacji"

Macie jakieś propozycje? Za dużo rzeczy do przetworzenia na raz

#php #pytanie #cron #programowanie #programista15k
Mirkowie, podpowiedzcie co robię źle: takie polecenie wydaję w #linux

rtl_433 -F json -T 90 > data.json
rtl 433 to do obsługi takiego dongla dvbt, zapisuje dane w formacie json do pliku data.json i czas wykonywania tego polecenia to 90 sekund. To działa, dane w pliku są. Tak wygląda przykładowe wywołanie tego:

malina@raspberrypi:~$ rtl_433 -F json -T 90 > data.json
rtl_433 version 19.08-87-g79d241d branch master at 201911040144 inputs file rtl_tcp RTL-SDR
Use
  • 1
@OperatorHydrolokator polecenia w crontab uruchamiane sa z uprawnieniami innego użytkownika. Proponuję przejrzeć ustawienia/uprawnienia, sprawdzić gdzie znajduje się aplikacja (which rtl_433), przenieść plik konfiguracyjny do etc. Ogólnie, jeśli skrypt/program sam nie skonczy swojego dzialania to może to być finalnie kłopotliwe, dodatkowo nazwa pliku powinna się zmieniać, by nie nadpisywać danych (np coś w stylu log_radio_'date +"%F-%T"', można też do pliku dopisywać, czy skorzystać z loga systemowego z logrotate i innych rozwiązań)
  • Odpowiedz
  • 2
@Mlekovita bylo pozno w nocy, bylem zmeczony i nie moglem pozniej edytowac ;) w skrocie mialem na mysli to ze jesli masz przykladowo zaszyfrowany home i dodawales rzeczy nie w swoim crontabie a np roota, sudo crontab -e to punkt montowania moze nie istniec. Niemniej, problem rozwiazany.
  • Odpowiedz
@TenToTamTaki: brakuje jakiejś ścieżki, którą masz w .profile, .bashrc albo gdzieś indziej. W skrypcie w cronie musisz ją wyeksportować lub podawać pełne ścieżki (niekoniecznie musi chodzić o sama binarke do maili)
  • Odpowiedz
a czym ogólnie może być spowodowane, że czasami się wykonuje, czasami nie?
bot ogólnie wysyła wpis na pewne forum

i [Dzisiaj 23:19] BOT: test bota 23:19:01
i [Dzisiaj 23:22] BOT: test bota 23:22:01
i [Dzisiaj 23:24] BOT: test bota 23:24:01
i [Dzisiaj 23:25] BOT: test bota 23:25:01

jest ustawiony na każdą minutę każdej godziny (* * * * *) a wykonuje się raz co minutę a innym razem co dwie
  • Odpowiedz
Ustawial ktos z Was skrypt #selenium jako #cron job ?
Ten sam skrypt dziala mi pieknie jak wywolam go z konsoli, a jak idzie z job'a to mam:

Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/common/service.py", line 74, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'

During handling of the above
Pobawiłem się malinką i na obecną chwilę jest tak:
- dwa czujniki temperatur, jeden mierzy temperaturę w serwerowni, drugi w miejscu, gdzie znajdują się modemy
- postawiony serwer FTP i przerzucona cała funkcjonalność z maszyny wirtualnej na malinę
- popisane skrypty, które co jakiś czas sprawdzają odczyty i zapisują wyniki do pliku tekstowego oraz wysyłają na maila
- skrypt, który raz w tygodniu robi kopie karty pamięci, na którym stoi maila

Nie
#symfony2 #php #cron troche #linux #programowanie
mam taki kawałek kodu:

public function __construct($username, $password)
{
$this->_username = $username;
$this->_password = $password;
$curl = new Curl();
$curl->setTimeout(120);
$this->_browser = new Browser();
$this->_browser->setClient($curl);
$this->_browser->getClient()->setOption(CURLOPT_COOKIEFILE, 'cookies.txt');
$this->_browser->getClient()->setOption(CURLOPT_COOKIEJAR, 'cookies.txt');
}
Gdy odpale taką komendę:

php /home/me/wwwdata//test/bin/console demo:greet

to plik jest tworzony (cookies) ale gdy dodam taska do crona to pliku nie tworzy?

task dodałem do crontab dla sudo i jest odpalany jako root.

no wiec
gdy inicjujesz nowy obiekt w konstruktorze, bóg zabija kotka.


@Avario: hahaha :D
spoko, to tylko do testów było napisane na szybko.
btw problem rozwiązałem już - zapomniałem wywołać motodę logowania...
  • Odpowiedz
@alkoholyk: zabierasz się do tego od złej stroyny, buttony są dla użytkowników, jeżeli chcesz coś robić w CRONie to musisz sobie napisać skrypt który będzie robił to samo. Czyli pobieranie produktów z bazy których stan jest 0 i zmienianie ich statusu.
  • Odpowiedz
Mam taki problem. Muszę zrobić, aby jakiś skrypt PHP uruchamiał się o określonej porze. Tzn. powiedzmy mam stronę z ogłoszeniami, gdzie ogłoszenie ma wisieć przez 30 dni, a następnie musi zniknąć ze strony. Oczywiście można zrobić tak, aby np. codziennie o 24:00 wykonywał się skrypt i ogłoszenia znikałyby, ale ten wariant mi nie pasuje. Muszę mieć dokładność do do minuty/sekundy.

Wiem, że istnieje coś takiego jak -at (https://packages.debian.org/wheezy/at) co pozwala na
@mariecziek: crontab albo eventy w mysql.

A jesli ma byc co do minuty to przy publikacji ustawiaj expiry date i przy selekcie sprawdzaj expiry date vs sysdate czy tam now.

od czasu do czas z crona albo z eventu archiwrchiwizuj i tyle.
  • Odpowiedz
No to problem masz z głowy:

W tabeli z aukcjami dajesz pole created i tam timestamp, a przy funkcji drukującej warunek sprawdzający created z aktualną datą i czasem, jeśli ogłoszenie starsze, wywołanie funkcji zmieniającej status i wysyłanie wiadomości.

To rozwiązanie ma minusy: jeśli to bardzo duży serwis, bezsensowne będzie mielenie wszystkich rekordów (wydajność spadnie jak izabela c. w przejście podziemne)

A jeśli to faktycznie ma być duży, PL+ serwis, załatwisz to ładnie
  • Odpowiedz
@siemanko: Hm... a to są takie usługi specjalizujące się tylko w cronie? :O

Jak coś mogę spróbować odpalać z jakiejś swojej maszyny, ale żadnego SLA chyba bym nie gwarantował ;)
  • Odpowiedz