每天重复处理文件、批量修改数据、定时发送邮件,这些琐事耗时又容易出错。其实在Windows或Linux环境下,用PHP写个小脚本就能搞定。别以为PHP只能做网站,它当起“自动化小助手”来也挺利索。
为什么选PHP做自动化工具
很多人手边已经装了PHP环境,特别是做过WordPress站点的用户。不需要额外安装运行时,直接写脚本就能跑。语法简单,学过一点编程的人上手快,而且处理文本、操作文件、调用系统命令都很方便。
自动重命名一批图片文件
比如你从相机导出了一堆照片,名字是IMG_001.jpg这种,想按日期加上前缀。手动改太累,写个PHP脚本能瞬间完成。
<?php
$dir = './photos/';
$files = glob($dir . '*.jpg');
foreach ($files as $file) {
$filename = basename($file);
$newName = $dir . 'vacation_2024_' . $filename;
rename($file, $newName);
echo "已重命名: $filename \\n";
}
?>
定时备份数据库并压缩
很多小项目没配自动备份,一旦出问题就抓瞎。用PHP调用mysqldump命令,再用gzip打包,配合系统定时任务,轻松实现每日备份。
<?php
$host = 'localhost';
$db = 'myblog';
$user = 'root';
$pass = '';
$backupFile = '/backups/db_' . date('Y-m-d') . '.sql.gz';
$cmd = "mysqldump -h{$host} -u{$user} -p{$pass} {$db} | gzip > {$backupFile}";
system($cmd, $returnCode);
if ($returnCode === 0) {
echo "备份成功:{$backupFile}\n";
} else {
echo "备份失败\n";
}
?>
监控日志文件并发送报警邮件
服务器日志里出现特定错误时,让脚本自动发邮件提醒。不用守着屏幕,省心不少。
<?php
$logFile = '/var/log/app.log';
$keyword = 'ERROR: Failed to connect';
if (file_exists($logFile)) {
$content = file_get_contents($logFile);
if (strpos($content, $keyword) !== false) {
mail('admin@example.com', '系统警报', '发现连接错误,请立即检查!');
echo "警告邮件已发送\n";
}
}
?>
怎么让脚本自动运行
在Linux上用crontab设置定时任务。比如每天凌晨2点执行备份脚本:
# 编辑定时任务
crontab -e
# 添加这一行
0 2 * * * /usr/bin/php /scripts/backup.php
Windows用户可以用“任务计划程序”,新建一个触发器,指向php.exe执行你的脚本文件。
小脚本也有大作用
不需要复杂架构,一个几十行的PHP脚本就能解决实际问题。清理临时文件、合并日志、同步目录、抓取网页数据,这些都可以交给脚本去做。把时间留给更重要的事,这才是技术该干的活。