php定时执行删除文件
时间: 2023-07-26 12:08:42 浏览: 121
你可以使用 PHP 的 `unlink()` 函数来删除文件,结合 `cron` 定时任务来实现定时删除文件的功能。
以下是一个示例代码,可以每天凌晨 3 点钟删除指定目录下的所有 .txt 文件:
```php
<?php
// 设置时区为东八区(北京时间)
date_default_timezone_set('Asia/Shanghai');
// 指定要删除的目录和文件类型
$dir = '/path/to/directory/';
$file_type = 'txt';
// 获取当前时间
$now = time();
// 遍历目录下所有文件
foreach (glob($dir . '*.' . $file_type) as $file) {
// 获取文件的修改时间
$mod_time = filemtime($file);
// 如果文件修改时间在当前时间的一天前,就删除该文件
if ($mod_time < $now - 24*60*60) {
unlink($file);
}
}
?>
```
然后,你可以在服务器上设置一个 `cron` 任务,每天凌晨 3 点钟执行一次上述代码:
```
0 3 * * * /usr/bin/php /path/to/script.php
```
以上命令表示在每天的凌晨 3 点钟执行 `/path/to/script.php` 脚本。你需要将 `/path/to/script.php` 替换成你实际的脚本路径。
相关问题
php写一个脚本,实现在a服务器定时备份文件到b服务器,并且b服务器定时删除大于10天的备份文件
好的,以下是一个用 PHP 编写的脚本,可以实现在 A 服务器定时备份文件到 B 服务器,并且 B 服务器定时删除大于 10 天的备份文件:
```php
<?php
// A 服务器信息
$a_host = 'A 服务器地址';
$a_user = 'A 服务器用户名';
$a_pass = 'A 服务器密码';
$a_dir = 'A 服务器备份目录';
// B 服务器信息
$b_host = 'B 服务器地址';
$b_user = 'B 服务器用户名';
$b_pass = 'B 服务器密码';
$b_dir = 'B 服务器备份存储目录';
// 连接 A 服务器
$a_conn = ftp_connect($a_host);
ftp_login($a_conn, $a_user, $a_pass);
ftp_pasv($a_conn, true);
// 连接 B 服务器
$b_conn = ftp_connect($b_host);
ftp_login($b_conn, $b_user, $b_pass);
ftp_pasv($b_conn, true);
// 获取 A 服务器备份文件列表
$files = ftp_nlist($a_conn, $a_dir);
// 遍历备份文件列表
foreach ($files as $file) {
// 下载备份文件到本地
$local_file = basename($file);
ftp_get($a_conn, $local_file, $file, FTP_BINARY);
// 上传备份文件到 B 服务器
ftp_put($b_conn, $b_dir . '/' . $local_file, $local_file, FTP_BINARY);
// 删除本地备份文件
unlink($local_file);
}
// 关闭连接
ftp_close($a_conn);
ftp_close($b_conn);
echo '备份完成';
// 连接 B 服务器
$b_conn = ssh2_connect($b_host, 22);
ssh2_auth_password($b_conn, $b_user, $b_pass);
// 执行删除命令
$cmd = 'find ' . $b_dir . ' -type f -mtime +10 -exec rm {} \;';
ssh2_exec($b_conn, $cmd);
// 关闭连接
ssh2_exec($b_conn, 'exit');
ssh2_disconnect($b_conn);
echo '删除完成';
```
这个脚本首先使用 FTP 协议连接 A 服务器和 B 服务器,遍历 A 服务器备份目录中的文件列表,将每个备份文件下载到本地,然后上传到 B 服务器备份存储目录中。最后关闭连接并输出备份完成信息。
接着,使用 SSH 协议连接 B 服务器,并执行一个删除命令,删除 B 服务器备份存储目录中大于 10 天的备份文件。最后关闭连接并输出删除完成信息。
你可以根据需要修改服务器信息、备份目录和备份存储目录等参数,以及删除命令的执行时间。注意,需要开启 B 服务器的 SSH 服务。
利用windows任务计划定时执行接口
要使用 Windows 任务计划定时执行接口,你可以按照以下步骤进行设置:
1. 打开 "任务计划程序"。你可以在开始菜单中搜索并打开 "任务计划程序",或者在 "控制面板" 中找到它。
2. 在任务计划程序窗口中,点击 "创建基本任务"。
3. 在 "创建基本任务" 对话框中,输入任务的名称和描述,然后点击 "下一步"。
4. 在 "触发器" 页面上,选择你希望任务何时执行的时间和频率。点击 "下一步"。
5. 在 "操作" 页面上,选择 "启动程序" 作为操作类型,并点击 "下一步"。
6. 在 "启动程序" 页面上,输入要执行的接口命令或脚本的路径。例如,如果你的接口是一个 PHP 脚本,你可以输入 `php.exe` 的路径,并在 "添加参数" 中指定脚本文件的路径。如果是其他类型的接口(如命令行工具或浏览器),请相应地提供正确的路径和参数。点击 "下一步"。
7. 在 "总结" 页面上,确认设置的信息是否正确,然后点击 "完成"。
现在,你已经创建了一个 Windows 任务计划来定时执行接口。请确保在设置任务时考虑到安全性和权限方面的问题。你可以在任务计划程序窗口中对任务进行修改、删除或禁用。
阅读全文