How do I schedule a PHP function every 2 month? I need, every 2 months, to execute some rule component programmatically, but I don't know how to do this.

If I use hook_cron(), I don't know how to check 2 months are passed from the last time it was executed.   

I can check 'the 10th day of the month' + 'month number is even'.

If cron tasks run twice a day, I cannot send 2 identical emails to users.

How can I achieve this?
You can easly do this without having access to crontab/shell, by using following code in your cron_hook:

// check if current day is 10th and month is an even number
if (date('d')==10 &amp;&amp; date('m') % 2 == 0) {
    // get todays-date (format: yyyymmdd)
    $today = date('Ymd');
    // get info about last run
    $last_run = variable_get('my_last_run', 0);
    // check last run was not today
    if ($last_run!=$today) {
        // set last run to today
        variable_set('my_last_run', $today);

        /* Place your code here */

    }
}


For more info on the modulo-operator (the % ) check:
http://www.php.net/manual/en/internals2.opcodes.mod.php