= Periodic tasks = '''Periodic tasks''' are programs that are run periodically. They are executed by the [StartTool bin/start --cron] program, which you should run from cron. To do this, run '''crontab -e''' and add a line of the form {{{ 0,5,10,15,20,25,30,35,40,45,50,55 * * * * HOME/projects/PROJECT/bin/start --cron }}} Periodic tasks are short-running, but in case they aren't, the 'start' script detect when an instance is still running and won't start another instance. Your project's periodic tasks are described in its [ProjectConfigFile config.xml] file, with elements of the following form: {{{ get_load get_load.out 5 min [ host.ip ] [ 0|1 ] [ 0|1 ] run_in_ops update_forum_activities.php update_form_activities.out 1 day ... }}} cmd:: The command used to perform the task. Must be a program in the project's /bin directory. You can run PHP scripts as periodic tasks. These scripts must be in the html/ops/ directory, and can be run with a command of the form {{{ run_in_ops scriptname }}} The script should be executable, and should have the form {{{ #! /usr/bin/env php }}} You must specify the output file for such tasks (otherwise it will go to run_in_ops.out). host:: Specifies where the daemon should run. The default is the project's main host, as specified in config.xml. period:: The interval between executions, expressed as a single number (in units of minutes) or a number followed by 'seconds', 'minutes', 'hours', or 'days' (may be abbreviated to unique initial string). output:: Specifies the output file to output; and by default it is COMMAND_BASE_NAME.out. Output files are in log_X/, where X is the host. disabled:: Ignore this entry always_run:: Run this task regardless of whether or not the project is enabled (for example, a script that logs the current CPU load of the host machine). A project newly created by [MakeProject make_project] has periodic tasks that run the following: db_dump:: Write statistics data to XML files for export. Details are [DbDump here]. Recommended period: 1 day. update_profile_pages.php:: Generate HTML files with lists of links to user profiles, organized alphabetically and by country. Recommended period: a few days. update_stats:: Update the recent average credit fields of users, teams, and hosts. This is important if you use send personalized [VolunteerRecruit mass emails] or [http://boinc.berkeley.edu/reminder_email.php reminder emails], or use recent credit to enable message-board posting. Recommended period: every few days. update_uotd.php:: Select a new User of the Day. Period: 1 day. update_forum_activities.php:: Recompute 'popularity' estimages for threads and posts in the Questions and Answers message boards. Recommended period: 1 hour.