PHP 脚本每天运行一次,无需 cron


PHP script run once a day without cron

我想每天创建一次数据库的 excel 备份。我使用 SSH 访问我的 Web 服务器,但我无法安装 cron,我需要 sudoier 的密码或其他东西。我想我可以联系我的网络主机提供商。

但必须有另一种选择。

有没有办法检查脚本是否已运行?

例如,如果没有人向数据库添加任何条目,则无需备份数据库。

因此,当有人提交某些内容时,我使用它来启动编写 excel 文件。如果其他人在那天提交了东西,我选择不写 excel 文件。

Excel 文件将具有 excel file_2013-11-11 的时间戳.xls

我唯一担心的是,如果两个人同时提交,excel文件会崩溃,或者因为您无法同时正确编写excel文件而被锁定怎么办?

您可以为服务设置 API,并使用外部请求来触发该过程

export SECRET=myapitoken
curl http://example.com/api/jobs?id=123&token=$SECRET

注意:您可以采取其他安全措施来限制访问。按 IP 地址过滤将是一种廉价、易于实施的解决方案。

除此之外,如果你只是谷歌"网络服务器监控",你会发现大量的服务可供你使用

不安装 cron,默认情况下应该安装它。

由于您似乎已经拥有 shell 访问权限,因此您应该能够使用 crontab -e 编辑用户的个人 cron 文件。请记住,此文件中的任何作业都将以您的用户身份运行,而不是以 root 用户身份运行,并且可能不是以 Apache 使用的同一用户身份运行。相应地规划脚本权限。

您可以使用

crontab

每天运行一次

 0 0 */1 * * /path_to_script

cron守护程序是一个长时间运行的进程,它在特定日期和时间执行命令。您可以使用它来计划活动,作为一次性事件或周期性任务。

分钟 小时 天 月 工作日命令

字段由空格或制表符分隔。前五个是整数模式,第六个是要执行的命令。下表简要介绍了每个字段。

字段值说明

分钟

0-59 命令序列执行的确切分钟

小时

0-23 命令序列执行的小时

第 1-31 天 执行命令序列的月份中的某一天

第 1-12 个月 命令序列执行的月份

工作日 0-6 命令序列执行的星期几。星期日 = 0,星期一 = 1,星期二 = 2,依此类推。

命令

特殊 要执行的命令的完整序列。命令字符串必须符合 Bourne shell 语法。命令、可执行文件(如脚本)或组合都是可以接受的。

教程:http://v1.corenominal.org/howto-setup-a-crontab-file/