בעיה בהורדת קובץ לשרת
-
יש לי את הקוד הזה
<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); //set_time_limit(0); $fileUrl = 'https://gtfs.mot.gov.il/gtfsfiles/israel-public-transportation.zip'; $destinationPath = '/var/www/shmuelsh.ovh/zips/israel-public-transportation.zip'; $ch = curl_init($fileUrl); $fp = fopen($destinationPath, 'w'); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); if(curl_exec($ch) === false) { echo 'cURL Error: ' . curl_error($ch); } else echo 'הקובץ יורד בהצלחה'; curl_close($ch); fclose($fp); ?>
כשאני מפעיל את זה אני מקבל
cURL Error: OpenSSL SSL_read: Connection reset by peer, errno 104אני רואה שהקובץ נוצר - בגודל 0 bytes...
מה הבעיה?
-
-
@yossiz צודק... שכחתי שכבר דנתי בזה...
עכשיו ניסיתי להשתמש במה ש @dovid נתן לי שם, אך הקובץ לא יורד לי<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); set_time_limit(0); $fileUrl = 'https://gtfs.mot.gov.il/gtfsfiles/israel-public-transportation.zip'; $options = array( 'http' => array( 'header' => "Accept-language: he\r\n" . "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36\r\n" ), 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false ) ); $content = file_get_contents($fileUrl, false, stream_context_create($options)); $file = file_put_contents("israel-public-transportation.zip", $content); echo "בוצע!";
עובר אפילו שתי דקות והקובץ לא מתחיל לרדת שם
מה הבעיה עכשיו? -
@ששא כתב בבעיה בהורדת קובץ לשרת:
@yossiz למעשה אני משתמש בפקודת cron כמו ש @איש-נחמד הביא פה בשמך
השאלה רק האם יש לוגים מהפעולות, כי אני מריץ את זה כל יום בשעה 12 בלילה, איך אני יכול לדעת האם זה הצליח או לא?
וכן אפשר אולי לעשות שאם היה שגיאה שינסה שוב עוד כמה דקות?אתה יכול להדפיס את הלוגים שה cron יוצר לקובץ, תוסיף > אחרי הפקודת cron, ותשים שם נתיב לקובץ txt
המבנה הוא
תזמון | שירות | קובץ | > קובץ הלוג > מה לשמור שם
כאשר בסיום אתה מגדיר 0|1|2 או כמה מהם,
0 עבור קלט רגיל (stdin)
1 עבור פלט סטנדרטי (stdout)
2 לשגיאה רגילה (stderr)למשל
* * * * * /usr/bin/python3 /app.py > app.log 2>&1
ישמור בקובץ app.log, את הפלט של usr/bin/python3 /app.py
וישמור שם את הפלט הסטנדרטי + השגיאותנ.ב. לא בדיוק הבנתי מה ההבדל בין 0 ל1 , אבל זה מידע שפעם מצאתי בגוגל,
כשאני משתמש בזה, אני רושם 2>&1 -
@צבי-ש כתב בבעיה בהורדת קובץ לשרת:
המבנה הוא
תזמון | שירות | קובץ | > קובץ הלוג > מה לשמור שם
כאשר בסיום אתה מגדיר 0|1|2 או כמה מהם,
המבנה שכתבת לא בדיוק נכונה, אבל הדוגמה נכונה
@צבי-ש כתב בבעיה בהורדת קובץ לשרת:
נ.ב. לא בדיוק הבנתי מה ההבדל בין 0 ל1 , אבל זה מידע שפעם מצאתי בגוגל,
עיין באריכות במדריך שורת הפקודה פוסט #6 ואילך