sudnonk / php-rsync
在PHP中使用rsync命令。
1.0.0
2019-10-10 19:32 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-11 15:34:10 UTC
README
这是一个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
特别选项