
שרת משחק בלי תזמון זה שרת שמנהל אותו בזיכרון. ב-3 בלילה אף אחד לא זוכר להריץ גיבוי. בבוקר אחרי קריסה אתם מגלים שהגיבוי האחרון הוא מיום חמישי. כאן לוח cron מינימלי שעובד ל-FiveM, CS, MU ו-Minecraft על VPS לינוקס.
מה חייבים לתזמן (ולא "נזכור")
- גיבוי קבצי שרת או DB
- restart מתוזמן אם המשחק דולף זיכרון
- ניקוי לוגים ישנים
- בדיקת דיסק, או לפחות התראה כשהוא מתמלא
בלי ארבעת האלה, כל "יציבות" היא מזל.
לפני שנוגעים ב-crontab
- עבדו עם משתמש ייעודי לשרת, לא root לכל דבר
- בדקו שיש מספיק מקום לגיבוי (לפחות עותק אחד מלא ועוד אחד ישן)
- כתבו את הפקודות לקבצי סקריפט, לא שורה ארוכה בתוך cron
- בדקו שעון המערכת:
timedatectlואזור ישראל אם רלוונטי
תבנית נכונה:
/home/gameserver/bin/backup.shואז ב-cron רק קריאה לסקריפט.
ביטויים שכיחים (העתיקו ובדקו)
השתמשו במסביר cron ברבוז כדי לראות מתי זה באמת רץ:
דוגמאות טובות להתחלה:
- גיבוי לילי:
30 3 * * *(כל יום ב-03:30) - restart רך:
0 5 * * *(05:00, אחרי הגיבוי) - ניקוי לוגים שבועי:
15 4 * * 0(ראשון ב-04:15)
אל תשימו restart וגיבוי באותה דקה. תנו לגיבוי לסיים.
סקריפט גיבוי מינימלי (רעיון, לא העתקה עיוורת)
הסקריפט צריך:
- לעצור כתיבה רגישה אם צריך, או להשתמש ב-snapshot עקבי
- לארוז תיקיית נתונים או dump ל-DB
- לשמור חותמת זמן בשם הקובץ
- למחוק גיבויים ישנים מ-X ימים
- לכתוב שורת לוג: הצליח או נכשל
אם הגיבוי נכשל בשקט, אין לכם גיבוי.
Restart בלי להבריח שחקנים
- פרסמו חלון תחזוקה קבוע (למשל 05:00 עד 05:10)
- שלחו הודעה בדיסקורד עשר דקות לפני
- אל תעשו restart באמצע מיקס ערב כי נוח לכם
- אם יש דליפת זיכרון, מדדו מתי היא מתחילה ומתיחו את החלון בהתאם
Restart כל שעה זה לא תחזוקה. זה הסימפטום.
איך לבדוק שה-cron באמת רץ
- הוסיפו לסקריפט כתיבה לקובץ
last-ok.txtעם תאריך - אחרי לילה אחד, בדקו שהקובץ התעדכן
- בדקו
grep CRON /var/log/syslogאו journalctl אם משהו לא קרה - שמרו עותק גיבוי מחוץ לשרת לפחות פעם בשבוע
גיבוי שנשאר על אותו דיסק של השרת לא מציל אתכם מקריסת דיסק.
מלכודות ישראליות
- שעון קיץ וחורף: ודאו שהביטוי תואם את מה ששחקנים מצפים
- "נסדר בשישי": שישי עמוס. תזמון אוטומטי לא תלוי במצב רוח
- הרצת הכל כ-root ואז אף אחד לא יודע מי שינה מה
- גיבוי לתיקייה בלי מכסה גודל שתוקע את הדיסק ביום ראשון
שלושה ביטויי cron טובים שווים יותר מעשר הבטחות בדיסקורד. גיבוי, restart וניקוי. בדקו שהסקריפטים כותבים לוג. ואם אתם לא בטוחים מה הביטוי אומר, פתחו את מסביר ה-cron ברבוז לפני שאתם שומרים אותו בשרת.