linux数据库定时备份到window
- 配置authorized_keys免登录
将
window
下的C:\Users\Administrator.ssh\id_rsa.pub 写入linux
/root/.ssh/authorized_keys
- 在cmd下执行
scp root@xxx.xxx.xxx.xxx:/www/backup/database/test.log F:/工作/备份/
Win10设置每天定时运行某程序
SyncController
<?php
namespace App\Http\Controllers;
use App\Facades\Response;
use App\Services\Response\Models\SuccessRequest;
use Illuminate\Http\Request;
class SyncController extends Controller
{
protected $key = "xxxxxx";
public function index(Request $request)
{
$token = $request->input('token');
$time = $request->input('time');
if (md5($this->key . $time) != $token) exit('非法操作');
$database = SyncController::database();
$site = SyncController::site();
$data = [
'database' => $database,
'site' => $site
];
$successRequest = new SuccessRequest();
$successRequest->setMessage('获取成功');
$successRequest->setData($data);
return Response::success($successRequest);
}
public static function database()
{
$dir = "/www/backup/database";
$files = scandir($dir);
$data = [];
foreach ($files as $val) {
if (strpos($val, "db_xxx_" . date('Ymd')) !== false) $data[] = $val;
}
return $data;
}
public static function site()
{
$dir = "/www/backup/site";
$files = scandir($dir);
$data = [];
foreach ($files as $val) {
if (strpos($val, "web_api.xxxx.com_" . date('Ymd')) !== false) $data[] = $val;
}
return $data;
}
}
sync.php
<?php
set_time_limit(0);
$key = "xxxxxx";
$time = time();
$token = md5($key . $time);
$data = httpGet("https://test.xxx.com/sync/index?token={$token}&time={$time}");
$data = json_decode($data, true);
if (empty($data['data'])) {
echo "<pre>";
print_r($data);
exit;
}
foreach ($data['data']['database'] as $val) {
$command = "scp root@xx.xx.xxx.106:/www/backup/database/{$val} F:/工作/备份/database";
exec($command, $array, $status); //执行命令
print_r($array);
print_r($status);
}
foreach ($data['data']['site'] as $val) {
$command = "scp root@xxx.xx.xxx.106:/www/backup/site/{$val} F:/工作/备份/site";
exec($command, $array, $status); //执行命令
print_r($array);
print_r($status);
}
function httpGet($url)
{
$oCurl = curl_init();
if (stripos($url, "https://") !== false) {
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);
}
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if (intval($aStatus["http_code"]) == 200) {
return $sContent;
} else {
return false;
}
}
sync.bat
D:\phpstudy_pro\Extensions\php\php7.4.3nts\php.exe "D:\phpstudy_pro\WWW\sync\sync.php"
win10 计划任务时提示所指定的账户名称无效解决方法
Win10设置每天定时运行某程序
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: