我想创建执行.php文件的cronjob,该文件将获取所有数据库,并且数据库将每天直接发送到我的电子邮件。
有什么想法我怎么能这样做?
非常感谢。
答案 0 :(得分:4)
你是什么意思,“所有数据库”?您想要服务器中保存的数据库列表吗?转储他们的内容?你不需要PHP,只需使用shell脚本:
mysqldump -p -u username_to_do_dump_with --all-databases | mail you@example.com -s 'database dumps'
简而言之:转储mysql中保存的所有数据库,将该输出传递给邮件程序,邮件程序将转储发送给您。
当然,如果您有大量数据(特别是如果您在数据库中存储文件),那么您最终会收到一封巨大的电子邮件,如果有任何二进制数据,电子邮件可能会破坏转储。你很可能想通过gzip来运行转储来减少它的一面,然后把那个.gz文件作为一个附件发送出来,这需要更多的脚本,这个非常简单的版本。
答案 1 :(得分:2)
您可以编写一个执行mysqldump的脚本,然后通过电子邮件向您发送文件......您是否真的要求某人给您这样的脚本,或者您是否在询问如何将其放入cron?
答案 2 :(得分:0)
在crontab中包含以下内容
@daily php php_file.php | mail -E -s“主题行”your@emailaddress.com
mail是一个发送电子邮件的程序,它从stdin读取正文文本,-s定义主题行。 -E表示只有正文时才发送电子邮件,您可能想要也可能不想要。
答案 3 :(得分:0)
那么你首先要编写php脚本。
然后你会在你的crontab中加一行:
1 1 * * * path/to/your/script
每天运行一次脚本。