php - 为什么这个 cPanel 备份脚本在没有更改后停止工作?
问题描述
我已经使用相同的备份 cPanel 备份脚本一年半了,但它突然停止工作而没有产生错误:
///From v-nessa.net
$auth = base64_encode("{$cpuser}:{$cppass}");
$domain = "https://my_domain.com:2083";
$theme = "paper_lantern";
$ftp = false;
$ftp_server = "";
$ftp_username = "";
$ftp_password = "";
$ftp_port = "21";
$ftp_directory = "/";
// Do not change below
$url = $domain . "/frontend/" . $theme . "/backup/dofullbackup.html";
$data = array();
if ($ftp) {
$data["dest"] = "ftp";
$data["server"] = $ftp_server;
$data["user"] = $ftp_username;
$data["pass"] = $ftp_password;
$data["port"] = $ftp_port;
$data["rdir"] = $ftp_directory;
}
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\nAuthorization: Basic $auth\r\n",
'method' => 'POST',
'content' => http_build_query($data)
),
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if (!$result) {
exit("Error backing up server.");
}
} catch (Exception $e) {
echo $e->getMessage();
}
我知道如果主题不正确,这个特定的脚本将会失败,但从我的 cPanel 我可以看到它仍然是“paper_lantern”。
还有其他方法可以解决问题吗?
解决方案
我建议改用 cPanel “UAPI”。以下是如何进行本地 homedir 备份:
$cpuser = "username";
$cppass = "password";
$auth = base64_encode("{$cpuser}:{$cppass}");
$domain = "https://example.com:2083";
$notifyEmail = "user@example.com";
$url = $domain . "/execute/Backup/fullbackup_to_homedir?email=$notifyEmail";
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\nAuthorization: Basic $auth\r\n",
'method' => 'POST'
),
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
print($result);
您可以将其用于 FTP 或 SCP - 查看https://documentation.cpanel.net/display/DD/UAPI+Modules+-+Backup上的其他功能。
推荐阅读
- oracle - SQLPLUS破竖条中的特殊字符
- c# - 我需要“transactionScope.Complete();”吗?
- apache - Symfony 在登录后下载 Apache 服务器
- c - 创建我自己的外壳。处理 Ctrl-Z 然后发送 SIGCONT 会关闭进程而不是继续它
- r - 一键多值列展开[tidyr]
- css - 导入全局 css 自定义变量
- docker - 在 Kubernetes 中与容器存储/共享数据
- excel - 根据单元格值选择要复制到新工作表的工作表
- php - 使用 ?XDEBUG_PROFILE 时,Webgrind 可以看到 cachegrind 文件但没有输出
- javascript - VueJs 模块构建失败:错误:找不到相对于目录的预设“@vue/app”