Permalänk
Medlem

Cron job

Posta detta på engelska på ett annat forum men fick aldrig ett svar:

I need once per day a cron job to request the link which will update the currency on my site:

http://example.net/admin/cron_currency_rates.php?secure_key=x...

Now the execution time I can control through cPanel. But I need the correct command for the http request, I don't know if it's curl or php?

and /admin/ is directory protected so I would need a secure command for username and password.

Permalänk
Medlem

Vad behöver ditt cronjob göra? Bara hämta sidan? Då duger "wget http://example.net/admin/cron_currency_rates.php?secure_key=x... >> /dev/null" i din crontab troligen både gott och väl.

Skickades från m.sweclockers.com

Visa signatur

WS: MSI B350M Mortar | AMD Ryzen 7 1700 | PH-TC14PE | 32GB DDR4 3000MHz | 1TB Kingston NV2 | Intel Arc A750 8GB | 2*BenQ G2420HDB
Router: Gigabyte GA-870-UD3 | AMD Phenom II x6 1055t @ 2600MHz, 1.25V | 12GB DDR3 | 2*250GB HDD @ RAID1 | 4TB HDD
Laptop: Thinkpad X220 4291-QF6

Permalänk
Permalänk
Medlem

Ja bara hämta sidan 1 gång om dagen, som då kommer uppdatera valutorna. Trodde man behövde köra php då länken är php. Men ja, ska nog gå med wget. Går detta @SideShowMicke, är det inte bättre med en flagga, vill gärna undvika att ps aux eller history fångar username/password.

Permalänk
Medlem

@nicoX: Ett alternativ är ju att anropa ett script som kör just den rad som @SideShowMicke föreslog och sen sätta rättigheterna på scriptet till 0700.

Visa signatur

WS: MSI B350M Mortar | AMD Ryzen 7 1700 | PH-TC14PE | 32GB DDR4 3000MHz | 1TB Kingston NV2 | Intel Arc A750 8GB | 2*BenQ G2420HDB
Router: Gigabyte GA-870-UD3 | AMD Phenom II x6 1055t @ 2600MHz, 1.25V | 12GB DDR3 | 2*250GB HDD @ RAID1 | 4TB HDD
Laptop: Thinkpad X220 4291-QF6

Permalänk
Medlem
Skrivet av SideShowMicke:

Testa i terminalen:

Resolving password@example.com (password@example.com)... failed: Name or service not known.
wget: unable to resolve host address 'password'@example.com'

Nu är mitt lösenord med en massa tecken så @ kan ju också vara ett tecken i lösenordet.

Testa även wget --user user --password pass "http://example.com..." och fick också ett felmeddelande:

bash: syntax error near unexpected token `('

( är ett tecken i mitt lösenord som jag tror spökar, för jag testa med curl också och använde 'föreoefterlösenordet' och då gick det tror jag för det generades ett html svar.

Det gick med wget också:

Connecting to xxx connected.
HTTP request sent, awaiting response... 401 Unauthorized
Reusing existing connection to xxx:443.HTTP request sent, awaiting response... 200 OK
Length: 0 [text/html]
Saving to: 'cron_currency_rates.php?secure_key=xxx'

Permalänk

@nicoX: Ahh har bara kört med wget i Windows och då är det den strängen.
Men om jag provar från Linux mot min IP kamera

# wget --user=root --password='secret' http://192.168.1.49/admin/about.shtml?id=7

--2019-08-27 13:44:46-- http://192.168.1.49/admin/about.shtml?id=7
Connecting to 192.168.1.49:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authentication selected: Basic realm="/"
Connecting to 192.168.1.49:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12450 (12K) [text/html]
Saving to: ‘about.shtml?id=7’

about.shtml?id=7 100%[===================>] 12.16K 41.8KB/s in 0.3s

2019-08-27 13:44:48 (41.8 KB/s) - ‘about.shtml?id=7’ saved [12450/12450]

Permalänk
Medlem

/usr/bin/wget --user valerioX --password 'password' http://example.com/admin/cron_currency_rates.php?secure_key=1... >> /dev/null 2>&1

Detta funkar men den skapar en tom fil i root, varje dag jobbet körs, hur kan detta undvikas?

Filen som skapas: cron_currency_rates.php?secure_key=12345

Permalänk
Medlem
Skrivet av nicoX:

/usr/bin/wget --user valerioX --password 'password' http://example.com/admin/cron_currency_rates.php?secure_key=1... >> /dev/null 2>&1

Detta funkar men den skapar en tom fil i root, varje dag jobbet körs, hur kan detta undvikas?

Filen som skapas: cron_currency_rates.php?secure_key=12345

Du pipar bara stdout och stderr till /dev/null. Om du vill slippa filen behöver du sätta plats för nedladdningen till /dev/null också (görs med -O-växeln). Du kan dessutom slippa hantera stdout och stderr om du snällt ber wget att hålla tyst med -q-växeln (quiet).

Visa signatur

Spela Swemantle! Du vet att du vill.

Ibland har jag fel, men då är det någon annans fel.

Permalänk
Medlem

/usr/bin/wget -q -O --user valerioX --password 'password' http://example.com/admin/cron_currency_rates.php?secure_key=1.... >> /dev/null 2>&1

Permalänk
Medlem
Skrivet av nicoX:

/usr/bin/wget -q -O --user valerioX --password 'password' http://example.com/admin/cron_currency_rates.php?secure_key=1.... >> /dev/null 2>&1

Detta fungerar inte, men utan -q och -O så fungerar det. Vad är problemet med flaggorna? Sen tog jag även bort 2>&1, som kanske också har med saken att göra.

Permalänk
Medlem
Skrivet av nicoX:

Detta fungerar inte, men utan -q och -O så fungerar det. Vad är problemet med flaggorna? Sen tog jag även bort 2>&1, som kanske också har med saken att göra.

-O behöver väl ett filnamn som argument? (så nästa grej blir väl filnamnet och sedan är allt ur fas)

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem
Skrivet av nicoX:

Detta fungerar inte, men utan -q och -O så fungerar det. Vad är problemet med flaggorna? Sen tog jag även bort 2>&1, som kanske också har med saken att göra.

`-O` behöver ett argument, förslagsvis `/dev/null`.
Sätter du `-q` så behövs inte `2>&1`.

Hela kommandot blir alltså förslagsvis:

/usr/bin/wget -q -O /dev/null --user valerioX --password 'password' http://example.com/admin/cron_currency_rates.php?secure_key=1...

Visa signatur

WS: MSI B350M Mortar | AMD Ryzen 7 1700 | PH-TC14PE | 32GB DDR4 3000MHz | 1TB Kingston NV2 | Intel Arc A750 8GB | 2*BenQ G2420HDB
Router: Gigabyte GA-870-UD3 | AMD Phenom II x6 1055t @ 2600MHz, 1.25V | 12GB DDR3 | 2*250GB HDD @ RAID1 | 4TB HDD
Laptop: Thinkpad X220 4291-QF6

Permalänk
Medlem
Skrivet av Dracc:

`-O` behöver ett argument, förslagsvis `/dev/null`.
Sätter du `-q` så behövs inte `2>&1`.

Hela kommandot blir alltså förslagsvis:

/usr/bin/wget -q -O /dev/null --user valerioX --password 'password' http://example.com/admin/cron_currency_rates.php?secure_key=1...

Tror detta funkar, ska testa det imorgon.

Jag tog bort "-O" men hade fortfarande >> /dev/null 2>&1. Detta uppdatera valutorna men skapa en fil.

Permalänk
Medlem

Ett litet tips om man är osäker på när det ska köras... https://crontab.guru/

Visa signatur

Citera för svar

Stora Owncloud/Nextcloud-tråden: http://www.sweclockers.com/forum/122-server/1212245-officiell...
Jobb: Datacenter Manager
Grundare: https://www.hanssonit.se