04. april 2004 - 14:33Der er
4 kommentarer og 2 løsninger
cronjob med mysql
Davs
Jeg vil gerne have kørt nedenstå sql forespørgsel hver nat kl. 03.00
Hvordan skal det sættes op (har ingen erfraing med cron, har kun hørt om det)
sql: mysql_query ("UPDATE medlemmer set medlem_status='indaktiv' where medlem_indmeldt < unix_timestamp(date_sub(current_date, interval 1 year))") or die(mysql_error());
for generale informationer om cron kan du læse det debianguiden.dk's afsnit om cron (det er nogenlunde det samme uanset hvilken distro du bruger) http://debianguiden.dk/dists/stable/html/cron.html eller du man læse i "man 5 crontab"
okay... for at lave et cron-job skriver du, som den bruger du ønsker at jobbet skal køres som "crontab -e", hvis du er root og ønsker at jobbet skal køres som en anden bruger så kan du skrive "crontab -e -u bruger". crontab åbner så brugerens crontab fil, med den editor som er opgivet i miljøvariablen "$EDITOR" og hvis den ikke findes så åbner den det med "vi" (hvis du ønsker at en anden editor skal åbnes så kan du sætte variablen f.eks. med "export EDITOR='nano'".
Når du så er der inde så for venter den at du opgiver føglende: "minut time dag måned ugedag kommando" et eks. kan se sådan ud: "*/4 3 * * 0 /usr/bin/php /home/hekatombe/update_mysql.php" Dette vil få "/usr/bin/php" til at køre php scriptet som ligget i "/home/hekatombe/update_mysql.php" 4 gange i timen, forudsat at timen er 3 (dvs. klokken 3.00 3.15 3.30 og 3.45) alle måneddage (dvs. fra den 1-31 i hver måned) når ugedagen er "0" (dvs. når det er mandag) og hvis du ønsker at det køres klokken 3.00 alle dage så kan du skrive føglende:
"#minut time dag måned ugedag kommando" "0 3 * * * /usr/bin/php /home/hekatombe/update_mysql.php"
Du kan ikke få crontab til at foretage selve "opkaldende" til mysql, men du kan lave et script i php, perl eller i et ligende sprog, som foretager "opkaldet" og kommandoerne, også få crontab til at køre scriptet
(jeg kom lige i tanke om en måde man også kunne gøre det på som er det du forespørger) som kommandoen i crontab kan du sætte:
echo "UPDATE DIN SQL KOMMANDO" | mysql -u bruger --password=password db1
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.