sudnonk/php-rsync

在PHP中使用rsync命令。

1.0.0 2019-10-10 19:32 UTC

This package is auto-updated.

Last update: 2024-09-11 15:34:10 UTC


README

Build Status

这是一个PHP类,用于方便地使用rsync。

前提

  • 通常可以使用rsync命令

安装

composer require sudnonk/php-rsync

环境

  • PHP 7.1.10以上
  • Bash

用法

注意

在实际执行之前,请先确认生成的命令。文件丢失,我概不负责。

$rsync->run();//の前に!!!!!!!!!
echo $rsync->build(); //で確認すること!!!!!!

请参考sample.php

构造函数

$rsync = new Rsync();

如果要将rsync命令的输出输出到标准输出,请

$rsync = new Rsync(true);

设置源目录

$rsync->set_from(string ディレクトリ名,bool 中身だけか, string ユーザ名, string ホスト);

//例
$rsync->set_from("/remote/test",true,"root","localhost");
$rsync->set_from("/local/test2",false);

将第二个参数设置为true时,只复制目录内容。设置为false时,复制目录本身。要复制文件时,请设置为false

如果源是远程的,请指定第三和第四个参数。如果是本地的,则不需要填写。

设置目标目录

$rsync->set_to(string ディレクトリ名, string ユーザ名, string ホスト);

//例
$rsync->set_to("/remote/test","root","localhost");
$rsync->set_to("/local/test2");

目标目录将被自动处理,将其中的内容复制到指定的目录。

如果目标是远程的,请指定第三和第四个参数。如果是本地的,则不需要填写。

设置选项

//パラメータつきのオプションをセットするとき
$rsync->options()->set(string オプション名, string パラメータ);
//パラメータ無しのをまとめてセットするとき
$rsync->options()->sets(string オプション名, string オプション名, ...);

//例
$rsync->options()->set("ignore-times");
$rsync->options()->set("timeout", "5");
$rsync->options()->sets("a", "v", "z", "stats");

可以指定选项。具体有哪些选项,请自行搜索。大概都支持。

对于常用选项,已经准备了函数。

//コピー元にないファイルをコピー先から削除する
$rsync->options()->setDelete();
//どんな動作をするかを実際には行わずに確認する
$rsync->options()->setDryRun();

设置SSH选项

//SSHのオプションをセット
$rsync->ssh_options()->set(string オプション名, string パラメータ);

//例
$rsync->ssh_options()->set("C");
$rsync->ssh_options()->set("F", "/path/to/config");

可以指定SSH选项。具体有哪些选项,请自行搜索。大概都支持。

对于常用选项,已经准备了函数。

//接続先ポートを10022番にする
$rsync->ssh_options()->setPort(10022);
//公開鍵ファイルを指定する
$rsync->ssh_options()->setCert("/path/to/cert");

执行rsync

//実行する
$rsync->run();

//コマンドだけを組み立てる
$command = $rsync->build();
var_dump($command);
//rsync -a -u -z --stat -e 'ssh -i /path/to/cert' /local/test root@example.com:/remote/test

特别选项