PHP脚本每天运行一次,没有cron

时间:2013-11-15 17:13:45

标签: php excel

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

但必须有另一种选择。

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

例如,如果没有人向db添加任何条目,则我不需要备份db。

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

excel文件的时间戳为excel file_2013-11-11.xls

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

3 个答案:

答案 0 :(得分:1)

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

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

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

除此之外,如果你只是谷歌“网络服务器监控”,你会发现很多服务可供你使用

答案 1 :(得分:-2)

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

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

答案 2 :(得分:-2)

您可以使用crontab

每天运行一次

 0 0 */1 * * /path_to_script

cron守护程序是一个长时间运行的进程,它在特定的日期和时间执行命令。您可以使用它来安排活动,可以是一次性事件,也可以是重复性任务。

分钟(s)天(s)个月(s)个星期(s)

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

字段值描述

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

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

第1-31天命令序列执行的月份日期

月1-12命令序列执行的年份中的月份

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

command Special要执行的完整命令序列。命令字符串必须符合Bourne shell语法。可以接受命令,可执行文件(例如脚本)或组合。

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