cPanel ホーム ディレクトリをバックアップするスクリプトがあります。最初にターゲット フォルダーを空にし (古いバックアップを削除するため)、次にホーム ディレクトリのバックアップを実行します。cron ジョブを使用してこのスクリプトを実行すると、削除フェーズでエラーが発生します。特定のバックアップ フォルダにしかアクセスできない FTP アカウントを使用しています。
<?php
// Must include cPanel API
include "xmlapi.php.inc";
// Credentials for cPanel account
$source_server_ip = ""; // Server IP or domain name eg: 212.122.3.77 or cpanel.domain.tld
$cpanel_account = ""; // cPanel username
$cpanel_password = ""; // cPanel password
// Credentials for FTP to Backup Box
$ftpacct = ""; // FTP account
$ftppass = ""; // FTP password
$email_notify = ''; // Email address for backup notification
$xmlapi = new xmlapi($source_server_ip);
$xmlapi->password_auth($cpanel_account,$cpanel_password);
$xmlapi->set_port('2083');
// Delete any other backup before create new backup
$conn_id = ftp_connect($source_server_ip);
$login_result = ftp_login($conn_id, $ftpacct, $ftppass);
$logs_dir = "/";
ftp_chdir($conn_id, $logs_dir);
$files = ftp_nlist($conn_id, ".");
foreach ($files as $file){
ftp_delete($conn_id, $file); }
ftp_close($conn_id);
$api_args = array(
'passiveftp',
$source_server_ip,
$ftpacct,
$ftppass,
$email_notify,
21,
'/'
);
$xmlapi->api1_query($cpanel_account,'Fileman','fullbackup',$api_args);
?>
cronエラーは以下です。$logs_dir も絶対パスに変更しようとしましたが、同じエラーが発生します。
<br />
<b>Warning</b>: ftp_delete() [<a href='function.ftp-delete'>function.ftp-delete</a>]: Could not delete .: Invalid argument in <b>/xxxxxxxx/cpanel-backup.php</b> on line <b>27</b><br /> <br />
<b>Warning</b>: ftp_delete() [<a href='function.ftp-delete'>function.ftp-delete</a>]: Could not delete ..: Invalid argument in <b>/xxxxxxxx/cpanel-backup.php</b> on line <b>27</b><br /> <br />
クローンジョブ:
0 0 1 1 * php -q /path/cpanel-backup.php