由於您的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
不要在評論中添加細節。相反,[編輯]你的問題,並把它放在它所屬的地方。你的帖子應該包含一個*明確的,具體的問題描述*和一個與該問題相關的特定問題*。你沒有。 –