由于您的OP询问“我将如何能够改善这一点” - 您没有提及您是否要使用PHP。
如果CSV很大..我会创建一个bash文件,它和PHP文件一样(因为您已经打电话给cron.sh
)。您将不得不将PHP配置更改为理想的设置,以便能够高效地运行它。恕我直言,bash是最好的选择。这种方式nohup
可以完全绕过。
含义我想:
1)创建登录路径为MySQL安全地从sh文件连接到你的数据库。您可以通过以下命令获得此结果:
sudo mysql_config_editor set --login-path=client --host=yourHost --user=MySQL_user --password
系统将提示您输入MySQL密码。
2)一旦做到这一点,你可以像这样你的bash文件访问MySQL并创建你的日志都在同一个文件:
#!/bin/bash
cd /place/where/you/want/the/csv/
wget http://your_file_location.com/csv/location/file.csv
# Or whatever you're doing to "download" it -- Just an example ..
mysql --login-path=local infile=1 3parsfdb -e "LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE your_table FIELDS TERMINATED BY ','"
echo "Whatever you've collected" >> /var/www/html/outputs/`date "+%Y-%m-%d %H:%M:%S"`.log
当然,这只是一个例子。但你得到大致的想法。然后将所述bash文件存储在安全的位置。
3)将新创建的bash文件放入crontab中。您可以使用您的用户crontab
,或者如果用户不能够访问你把它在bash的文件或目录,你可以用root的crontab
- IE:
0 18 * * 0 /path/to/your/bash/file/BackupCSVToDB.sh
不必的节省开销使用PHP可以节省几个小时的运行时间。
来源
2017-04-07 17:49:18
Zak
改进什么?将csv内容添加到db的时间? –
对不起,不太清楚。 cronjob执行PHP脚本的过程的一部分。例如 例如。我应该直接从cron作业执行php脚本等。 – MagnusD
不要在评论中添加细节。相反,[编辑]你的问题,并把它放在它所属的地方。你的帖子应该包含一个*明确的,具体的问题描述*和一个与该问题相关的特定问题*。你没有。 –