linux数据库定时备份到window

  • 配置authorized_keys免登录

    window下的C:\Users\Administrator.ssh\id_rsa.pub 写入 linux /root/.ssh/authorized_keys

linux备份定时下载到window

  • 在cmd下执行
    scp root@xxx.xxx.xxx.xxx:/www/backup/database/test.log F:/工作/备份/

linux备份定时下载到window

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"

linux备份定时下载到window

linux备份定时下载到window

linux备份定时下载到window

linux备份定时下载到window

linux备份定时下载到window

linux备份定时下载到window

win10 计划任务时提示所指定的账户名称无效解决方法
Win10设置每天定时运行某程序

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

自己没啥研究下当娱乐不错 感谢分享 不过我感觉.sh自动数据库存入本系统或者其他地方更香 你写了太多东西了 实际用处不大

1年前 评论
my38778570 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!