[{"data":1,"prerenderedAt":437},["ShallowReactive",2],{"guide-\u002Fguides\u002Flinux-server-troubleshooting-first-steps":3,"mdc-pre:MOFCBT6mIcr4Kk9_A8P4ZFQQo3R3xQVFfGN3vKkRa7A":430,"mdc-pre:i05g1XJFbJhXBVAvbsgsiXPyzh-WXG6KtJC_FQ5jc34":431,"mdc-pre:1rFB36_GANLuDo0aRDtGXBYqv2g4OOYU8B9qP2dADmw":432,"mdc-pre:r-uELsNY7UpqflLrL_Cy7UrwqoCkdHCNFS5SrQHhhlw":433,"mdc-pre:n8srF6Uvh3JSchdER49TQiXZ-zencfeHLCKUHNj_S1A":434,"mdc-pre:fZddbbXLvYT9q7W9Km_31sX8u90e-c-UO9yNwfwGifo":435,"mdc-pre:PM-nT0UpQY_cEdxbiMQK-4qZs4sE4Hl1b6fjct994-Q":436},{"id":4,"title":5,"body":6,"date":414,"description":415,"draft":416,"extension":417,"featured":416,"keyTakeaway":418,"meta":419,"navigation":420,"path":421,"primaryKeyword":422,"seo":423,"service":424,"stem":425,"tags":426,"__hash__":429},"guides\u002Fguides\u002Flinux-server-troubleshooting-first-steps.md","Linux server problem? First checks before you call for help",{"type":7,"value":8,"toc":402},"minimark",[9,13,17,22,25,29,32,45,49,52,115,119,144,147,172,176,219,222,264,268,295,298,347,351,354,358,361,375,379,382,385,389,398],[10,11,5],"h1",{"id":12},"linux-server-problem-first-checks-before-you-call-for-help",[14,15,16],"p",{},"When a Linux server is down or misbehaving and nobody on the team owns it, the hard part is knowing where to start. This guide covers the checks worth running first, what to write down, and when to bring in help.",[18,19,21],"h2",{"id":20},"key-takeaway","Key takeaway",[14,23,24],{},"Most first checks take a few minutes: disk, memory, services, logs and recent changes. Write down what you find and what changed recently. That record saves time, whether you fix the problem yourself or hand it over.",[18,26,28],{"id":27},"_1-note-what-changed","1. Note what changed",[14,30,31],{},"Before you touch anything, write down:",[33,34,35,39,42],"ul",{},[36,37,38],"li",{},"what stopped working, and when you first noticed it",[36,40,41],{},"the exact error message, or a screenshot of it",[36,43,44],{},"anything that changed recently: updates, deploys, DNS, certificates or firewall rules",[18,46,48],{"id":47},"_2-check-disk-space","2. Check disk space",[14,50,51],{},"A full disk breaks databases, logs and uploads in confusing ways.",[53,54,59],"pre",{"className":55,"code":56,"language":57,"meta":58,"style":58},"language-bash shiki shiki-themes github-dark","df -h\ndf -i            # inodes can run out even with free space\nsudo du -xh \u002Fvar --max-depth=1 | sort -h\n","bash","",[60,61,62,75,87],"code",{"__ignoreMap":58},[63,64,67,71],"span",{"class":65,"line":66},"line",1,[63,68,70],{"class":69},"svObZ","df",[63,72,74],{"class":73},"sDLfK"," -h\n",[63,76,78,80,83],{"class":65,"line":77},2,[63,79,70],{"class":69},[63,81,82],{"class":73}," -i",[63,84,86],{"class":85},"sAwPA","            # inodes can run out even with free space\n",[63,88,90,93,97,100,103,106,110,113],{"class":65,"line":89},3,[63,91,92],{"class":69},"sudo",[63,94,96],{"class":95},"sU2Wk"," du",[63,98,99],{"class":73}," -xh",[63,101,102],{"class":95}," \u002Fvar",[63,104,105],{"class":73}," --max-depth=1",[63,107,109],{"class":108},"snl16"," |",[63,111,112],{"class":69}," sort",[63,114,74],{"class":73},[18,116,118],{"id":117},"_3-check-memory-and-load","3. Check memory and load",[53,120,122],{"className":55,"code":121,"language":57,"meta":58,"style":58},"free -h\nuptime\ntop              # press q to quit\n",[60,123,124,131,136],{"__ignoreMap":58},[63,125,126,129],{"class":65,"line":66},[63,127,128],{"class":69},"free",[63,130,74],{"class":73},[63,132,133],{"class":65,"line":77},[63,134,135],{"class":69},"uptime\n",[63,137,138,141],{"class":65,"line":89},[63,139,140],{"class":69},"top",[63,142,143],{"class":85},"              # press q to quit\n",[14,145,146],{},"Look in the kernel log to see whether the out-of-memory killer has stopped a process:",[53,148,150],{"className":55,"code":149,"language":57,"meta":58,"style":58},"sudo journalctl -k | grep -i \"out of memory\"\n",[60,151,152],{"__ignoreMap":58},[63,153,154,156,159,162,164,167,169],{"class":65,"line":66},[63,155,92],{"class":69},[63,157,158],{"class":95}," journalctl",[63,160,161],{"class":73}," -k",[63,163,109],{"class":108},[63,165,166],{"class":69}," grep",[63,168,82],{"class":73},[63,170,171],{"class":95}," \"out of memory\"\n",[18,173,175],{"id":174},"_4-check-the-service","4. Check the service",[53,177,179],{"className":55,"code":178,"language":57,"meta":58,"style":58},"systemctl status nginx          # swap in your service name\nsudo journalctl -u nginx --since \"1 hour ago\"\nsystemctl --failed\n",[60,180,181,195,212],{"__ignoreMap":58},[63,182,183,186,189,192],{"class":65,"line":66},[63,184,185],{"class":69},"systemctl",[63,187,188],{"class":95}," status",[63,190,191],{"class":95}," nginx",[63,193,194],{"class":85},"          # swap in your service name\n",[63,196,197,199,201,204,206,209],{"class":65,"line":77},[63,198,92],{"class":69},[63,200,158],{"class":95},[63,202,203],{"class":73}," -u",[63,205,191],{"class":95},[63,207,208],{"class":73}," --since",[63,210,211],{"class":95}," \"1 hour ago\"\n",[63,213,214,216],{"class":65,"line":89},[63,215,185],{"class":69},[63,217,218],{"class":73}," --failed\n",[14,220,221],{},"If you run Docker:",[53,223,225],{"className":55,"code":224,"language":57,"meta":58,"style":58},"docker ps -a\ndocker logs --tail 100 \u003Ccontainer>\n",[60,226,227,238],{"__ignoreMap":58},[63,228,229,232,235],{"class":65,"line":66},[63,230,231],{"class":69},"docker",[63,233,234],{"class":95}," ps",[63,236,237],{"class":73}," -a\n",[63,239,240,242,245,248,251,254,257,261],{"class":65,"line":77},[63,241,231],{"class":69},[63,243,244],{"class":95}," logs",[63,246,247],{"class":73}," --tail",[63,249,250],{"class":73}," 100",[63,252,253],{"class":108}," \u003C",[63,255,256],{"class":95},"containe",[63,258,260],{"class":259},"s95oV","r",[63,262,263],{"class":108},">\n",[18,265,267],{"id":266},"_5-check-the-network-and-certificates","5. Check the network and certificates",[53,269,271],{"className":55,"code":270,"language":57,"meta":58,"style":58},"ss -tlnp                         # what is listening, and on which port\ncurl -I https:\u002F\u002Fyour-domain.example\n",[60,272,273,284],{"__ignoreMap":58},[63,274,275,278,281],{"class":65,"line":66},[63,276,277],{"class":69},"ss",[63,279,280],{"class":73}," -tlnp",[63,282,283],{"class":85},"                         # what is listening, and on which port\n",[63,285,286,289,292],{"class":65,"line":77},[63,287,288],{"class":69},"curl",[63,290,291],{"class":73}," -I",[63,293,294],{"class":95}," https:\u002F\u002Fyour-domain.example\n",[14,296,297],{},"An expired certificate or a firewall change often looks like \"the site is down\". Check the dates on the certificate:",[53,299,301],{"className":55,"code":300,"language":57,"meta":58,"style":58},"echo | openssl s_client -connect your-domain.example:443 -servername your-domain.example 2>\u002Fdev\u002Fnull | openssl x509 -noout -dates\n",[60,302,303],{"__ignoreMap":58},[63,304,305,308,310,313,316,319,322,325,328,331,334,336,338,341,344],{"class":65,"line":66},[63,306,307],{"class":73},"echo",[63,309,109],{"class":108},[63,311,312],{"class":69}," openssl",[63,314,315],{"class":95}," s_client",[63,317,318],{"class":73}," -connect",[63,320,321],{"class":95}," your-domain.example:443",[63,323,324],{"class":73}," -servername",[63,326,327],{"class":95}," your-domain.example",[63,329,330],{"class":108}," 2>",[63,332,333],{"class":95},"\u002Fdev\u002Fnull",[63,335,109],{"class":108},[63,337,312],{"class":69},[63,339,340],{"class":95}," x509",[63,342,343],{"class":73}," -noout",[63,345,346],{"class":73}," -dates\n",[18,348,350],{"id":349},"_6-be-careful-with-restarts","6. Be careful with restarts",[14,352,353],{},"Restarting a service can bring it back, but it can also wipe out the evidence of what went wrong. Before you restart, save the output of the checks above, and avoid rebooting a production server if you're not sure it will come back up cleanly.",[18,355,357],{"id":356},"when-to-get-help","When to get help",[14,359,360],{},"Get outside help when:",[33,362,363,366,369,372],{},[36,364,365],{},"the cause isn't clear after the checks above",[36,367,368],{},"the fix means changing configuration you don't fully understand",[36,370,371],{},"the problem keeps coming back",[36,373,374],{},"the server holds data you can't afford to lose",[18,376,378],{"id":377},"where-i-can-help","Where I can help",[14,380,381],{},"A troubleshooting session is £150 for up to 90 minutes on one agreed problem. I investigate, make any safe fixes that fit within that time, and give you written findings and next steps. A complete fix isn't guaranteed in the session, and it isn't emergency incident response.",[14,383,384],{},"I also work with agencies and IT providers on their clients' servers. I can make approved changes myself, or give clear instructions to your team.",[18,386,388],{"id":387},"practical-next-step","Practical next step",[14,390,391,392,397],{},"Write down the problem and your notes from step 1, then ",[393,394,396],"a",{"href":395},"\u002Flinux-server-support#troubleshooting","book a troubleshooting session",".",[399,400,401],"style",{},"html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}",{"title":58,"searchDepth":77,"depth":77,"links":403},[404,405,406,407,408,409,410,411,412,413],{"id":20,"depth":77,"text":21},{"id":27,"depth":77,"text":28},{"id":47,"depth":77,"text":48},{"id":117,"depth":77,"text":118},{"id":174,"depth":77,"text":175},{"id":266,"depth":77,"text":267},{"id":349,"depth":77,"text":350},{"id":356,"depth":77,"text":357},{"id":377,"depth":77,"text":378},{"id":387,"depth":77,"text":388},"2026-10-20","A short checklist for small UK teams when a Linux server is down or misbehaving, from disk space and services to logs, plus when to get outside help.",false,"md",null,{},true,"\u002Fguides\u002Flinux-server-troubleshooting-first-steps","linux server troubleshooting",{"title":5,"description":415},"troubleshooting","guides\u002Flinux-server-troubleshooting-first-steps",[427,424,428],"linux","support","d83jcqvQqHFkl3vgN285Cdi7zdkH4weUCiXMMCt_NtI","\u003Cspan class=\"line\" line=\"1\">\u003Cspan style=\"--shiki-default:#B392F0\">df\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -h\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"2\">\u003Cspan style=\"--shiki-default:#B392F0\">df\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -i\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#6A737D\">            # inodes can run out even with free space\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"3\">\u003Cspan style=\"--shiki-default:#B392F0\">sudo\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> du\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -xh\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> \u002Fvar\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> --max-depth=1\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#F97583\"> |\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#B392F0\"> sort\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -h\u003C\u002Fspan>\u003C\u002Fspan>","\u003Cspan class=\"line\" line=\"1\">\u003Cspan style=\"--shiki-default:#B392F0\">free\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -h\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"2\">\u003Cspan style=\"--shiki-default:#B392F0\">uptime\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"3\">\u003Cspan style=\"--shiki-default:#B392F0\">top\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#6A737D\">              # press q to quit\u003C\u002Fspan>\u003C\u002Fspan>","\u003Cspan class=\"line\" line=\"1\">\u003Cspan style=\"--shiki-default:#B392F0\">sudo\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> journalctl\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -k\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#F97583\"> |\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#B392F0\"> grep\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -i\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> \"out of memory\"\u003C\u002Fspan>\u003C\u002Fspan>","\u003Cspan class=\"line\" line=\"1\">\u003Cspan style=\"--shiki-default:#B392F0\">systemctl\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> status\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> nginx\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#6A737D\">          # swap in your service name\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"2\">\u003Cspan style=\"--shiki-default:#B392F0\">sudo\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> journalctl\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -u\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> nginx\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> --since\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> \"1 hour ago\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"3\">\u003Cspan style=\"--shiki-default:#B392F0\">systemctl\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> --failed\u003C\u002Fspan>\u003C\u002Fspan>","\u003Cspan class=\"line\" line=\"1\">\u003Cspan style=\"--shiki-default:#B392F0\">docker\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> ps\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -a\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"2\">\u003Cspan style=\"--shiki-default:#B392F0\">docker\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> logs\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> --tail\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> 100\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#F97583\"> &lt;\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\">containe\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#E1E4E8\">r\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#F97583\">&gt;\u003C\u002Fspan>\u003C\u002Fspan>","\u003Cspan class=\"line\" line=\"1\">\u003Cspan style=\"--shiki-default:#B392F0\">ss\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -tlnp\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#6A737D\">                         # what is listening, and on which port\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\" line=\"2\">\u003Cspan style=\"--shiki-default:#B392F0\">curl\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -I\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> https:\u002F\u002Fyour-domain.example\u003C\u002Fspan>\u003C\u002Fspan>","\u003Cspan class=\"line\" line=\"1\">\u003Cspan style=\"--shiki-default:#79B8FF\">echo\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#F97583\"> |\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#B392F0\"> openssl\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> s_client\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -connect\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> your-domain.example:443\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -servername\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> your-domain.example\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#F97583\"> 2&gt;\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\">\u002Fdev\u002Fnull\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#F97583\"> |\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#B392F0\"> openssl\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#9ECBFF\"> x509\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -noout\u003C\u002Fspan>\u003Cspan style=\"--shiki-default:#79B8FF\"> -dates\u003C\u002Fspan>\u003C\u002Fspan>",1792571462554]