php - PHP exec() 和文件系统权限
问题描述
所以我是 exec 新手,最近想通过 php 脚本自动执行 mysql 转储。
我的 php 文件来自
var/WWW/html/tool/script.php
root / WWW-data
当我这样做时,该文件夹会读取ls -l
它在做
exec('mysqldump -user=user --password=pass db > selfDir\dump.sql')
现在我期望的是脚本输出到脚本文件夹内的dump.sql。不过,这并没有发生。
只有一次我这样做touch dump.sql
并且chmod 777 dump.sql
实际上是在编写转储。
我不明白为什么。我如何更改 myexec()
以确保它可以创建 dump.file 而不是仅在它已经存在时才写入它?
谢谢
解决方案
如果您只想自动化数据库备份,最好使用任何其他系统服务(如 cron)调用 mysqldump。
依赖 php exec 会产生太多错误。
- php限时执行
- 从请求执行,然后请求被杀死执行被杀死或需要等待所有的mysqldump时间
- 更难的权限
- php和服务器中的限制内存
在 cron 中,您的备份将是(来自The Java Guy 的示例):
0 0 * * * mysqldump -u 'username' -p'password' DBNAME > /home/eric/db_backup/liveDB_`date +\%Y\%m\%d_\%H\%M`.sql
使用 mysql 进行 crontab 备份的其他链接:Answer K1773R mysql-dump-cronjob
推荐阅读
- php - 将项目移动到另一台服务器时出现 500 错误
- android - 在应用程序中使用多个 android BillingClient 实例是否安全?
- oracle - 如何使用 Oracle.jl 包从 julia 连接到 Oracle XE 11g2?
- javascript - 从 JSON 响应中删除有问题的额外输出
- ios - 为什么我从命令行找不到 xcodebuild 致命错误模块映射文件
- php - PHP setcookie和一份域名
- c++ - 使 CLion 将 C++ 源文件作为 .CC
- javascript - 在调用提示之前等待 DOM 完成操作
- r - 将字符元素转换为R中的对象
- python - 我得到了一个不受支持的操作数类型 -: 'str' 和 'str 但我无法弄清楚。我读了很多问题,但仍然无法得到它