webForumDet fria alternativet

Bygg om efter 24 timmar

15 svar · 1 059 visningar · startad av Mr T

Mr TMedlem sedan maj 20071 061 inlägg
#1

Utvecklar ett CMS (http://cmsv2.axplock.com/) som jag låter besökare prova. Det är just "provandet" som kan ställa till det och jag vill nu - om ingen har annat förslag - en liten rutin som med jämna mellanrum rensar och lägger in alla data i databasen på nytt.

Hur löser man detta på ett smidigt sätt ?

LaspMedlem sedan juli 200012 980 inlägg
#2

På siten som man kan testa CMS finns det automatiskt ombyggnad. Kolla där!

MickeA.comMedlem sedan feb. 20034 441 inlägg
#3

Cronjob som körs varje x (timma, dag, månad...) där du kör ett gäng sql-frågor för att rensa databasen, klart!

Mr TMedlem sedan maj 20071 061 inlägg
#4

Lasp skrev:

På siten som man kan testa CMS finns det automatiskt ombyggnad. Kolla där!

Menar du att jag ska lägga in en "automatiskt ombyggnad" eller vad ?

Mr TMedlem sedan maj 20071 061 inlägg
#5

MickeA.com skrev:

Cronjob som körs varje x (timma, dag, månad...) där du kör ett gäng sql-frågor för att rensa databasen, klart!

Var en sådan ide jag tänkt mig kanske, men hur skapar jag ett "Cronjob" ? (har som sagt bara hört ordet och dess nytta, men vet inte mycket mer om det).

MickeA.comMedlem sedan feb. 20034 441 inlägg
#6

Kolla t.ex. här:
http://www.developertutorials.com/blog/php/running-php-cron-jobs-regular-scheduled-tasks-in-php-172/

Det du gör är helt enkelt ett php-script med ett gäng sql-frågor, t.ex.:

DELETE FROM cms_content;
DELETE FROM cms_pages

Sen (beroende på ditt webhotell) så laddar du upp filen på din server och ställer in att scriptet ska köras (m.h.a. crontab) varje x. Du anropar scriptet med php-binären eller med t.ex. WGET (också beroende på webhotell).

Mr TMedlem sedan maj 20071 061 inlägg
#7

Tänkte på en annan lösning, detta då besöksantalet är rätt få och jag därför vill mini-mera server-jobbet, att jag gör om-installationen via besökar anrop.
När en användare går in på sidan kollar jag en tidsvariabel då senaste "om-installationen" av databasen gjordes. Om den överstiger 24 timmar sker en om-installation.

Fördelar :
* Färska data då besökarna verkligen anländer
* Slipper göra onödiga server-anrop (om än små)
* (Slipper lära mig Cronjob :-) )

Nackdelar :
* Användaren som "startar" arbetet kan uppleva sidan seg (?)
* ?

MickeA.comMedlem sedan feb. 20034 441 inlägg
#8

Alltså jag tror ju att du ser det här som något större än vad det är. Bra tanke dock att strunta i cron, om det är en mindre sajt.

Men vad exakt måste du göra, om vi börjar där?

  • Ett antal sql-frågor för att rensa användare, content.
  • Kanske radera uppladdade filer.
  • Köra en typ av installationsscript som återskapar en admin och lite dummycontent.

Det går ju blixtsnabbt att smälla ihop ett script för det här och jag förstår inte vad som skulle gå segt "för användaren som startar jobbet"?

Lägg till en variabel i en fil eller som en rad någonstans i databasen där du lagrar starttid för senaste körning som t.ex. en DATETIME.

Sist i ditt script uppdaterar du datum till CURRENT_TIMESTAMP.

Mr TMedlem sedan maj 20071 061 inlägg
#9

MickeA.com - Du är inne på min linje av vad som behövs ändras, och då du säger att det inte tar stor tid hoppar jag cron och gör det vid en in-loggning.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#10

Är det en så bra idé att köra vid varje inloggning? Om någon sitter och testar, lägger till content, loggar ut för att se resultatet så kommer ju allt tas bort när han eller hon loggar in igen.

Kör ett fält i databasen med en tidsstämpel, vid inloggning kan du köra följande fråga:

SELECT foo FROM settings WHERE DATEADD(senaste, INTERVAL 1 DAY) <=  CURRENT_TIMESTAMP

Får du något i retur så har det gått minst 1 dygn sedan senaste "rensning", får du inget i retur så kör på som vanligt och logga in anvädnaren.

Mr TMedlem sedan maj 20071 061 inlägg
#11

Någon typ av datum koll är klart man måste ha.

Tack för tippset.

jmeMedlem sedan maj 20012 237 inlägg
#12

Varför inte skapa en db dump av din exempel databas?

Sedan kan du ladda in den med:

mysql -u xxx -p yyy database < dump_file.sql

Denna rad kan du lägga in en bash-script eller liknande och såm du sedan lägger till i crontab.

Se till att dump filen börjar med drop database foo; create database foo;

(Dvs om du kör med MySQL)

Mr TMedlem sedan maj 20071 061 inlägg
#13

jme - Ligger på ett hotell. Vet inte om man kan göra så "enkelt". Men en dump av tabellerna (inkl. massa data) som styr cms-systemt. Kanske går att köra som en fil på något sätt ändå.

MickeA.comMedlem sedan feb. 20034 441 inlägg
#14

Du kan t.ex. lägga alla dina frågor i en .sql-fil som du läser in med PHP med fread, kör en explode på ";", loopar igenom din array och kör frågorna direkt mot databasen.

jme's sätt ovan är att föredra, och det kan gå hos vissa hotell, där du har tillgång till php binären. Det fungerar dock inte om du ligger hos Binero, där du måste kalla på scriptet via WGET, då måste du köra på det sättet jag nämner ovan.

frozieMedlem sedan apr. 201037 inlägg
#15

Någon som ahr en simple cms med database som man kan fixa till privat hemsida som är änkelt html / css kodat så maila / adda msn mend länk elelr zip fil

cant.stand.pain@hotmail.com

Mr TMedlem sedan maj 20071 061 inlägg
#16

frozie skrev:

Någon som ahr en simple cms med database som man kan fixa till privat hemsida som är änkelt html / css kodat så maila / adda msn mend länk elelr zip fil

cant.stand.pain@hotmail.com

Har skickat ett mail till din e-mail-adress då jag tror jag har vad du söker (vilket du också verkar tro).

125 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)