{"id":131,"date":"2024-12-03T23:43:57","date_gmt":"2024-12-03T15:43:57","guid":{"rendered":"http:\/\/yangnanbei.top\/?p=131"},"modified":"2025-07-26T23:48:12","modified_gmt":"2025-07-26T15:48:12","slug":"shell%e7%bb%83%e4%b9%a0","status":"publish","type":"post","link":"http:\/\/yangnanbei.top\/index.php\/2024\/12\/03\/shell%e7%bb%83%e4%b9%a0\/","title":{"rendered":"shell\u7ec3\u4e60"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Day1 \u5907\u4efd\u6587\u4ef6<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.bilibili.com\/video\/BV1ih4y1Y7nh\/?spm_id_from=333.337.search-card.all.click&amp;vd_source=29d4fa0f05c21737f4d2d377b8be842d\">shell\u811a\u672c\u4e00\u5929\u4e00\u7ec3-day1_\u54d4\u54e9\u54d4\u54e9_bilibili<\/a><\/p>\n\n\n\n<p>\u9898\u76ee\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\r\n<p>\u5199\u4e00\u4e2a\u811a\u672c\uff0c\u904d\u5386\/data\/\u76ee\u5f55\u4e0b\u7684txt\u6587\u4ef6<\/p>\r\n<p>\u5c06\u8fd9\u4e9b\u6587\u4ef6\u505a\u4e00\u4e2a\u5907\u4efd<\/p>\r\n<p>\u5907\u4efd\u7684\u6587\u4ef6\u540d\u589e\u52a0\u4e00\u4e2a\u5e74\u6708\u65e5\u7684\u540e\u7f00\uff0c\u6bd4\u5982aming.txt\u5907\u4efd\u4e3aaming.txt_20241203<\/p>\r\n<\/blockquote>\r\n<p>&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\n# create file first\ntouch \/data\/{1..100}.txt\nsuffix=`date +%Y%m%d`\n\nfor file in `find \/data\/ -type f -name \"*.txt\"`\ndo\n        echo \"back up file $file to ${file}_${suffix}\"\n        cp -f ${file} ${file}_${suffix}\ndone<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">create<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">file<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">first<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">touch<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #B48EAD\">1..100<\/span><span style=\"color: #ECEFF4\">}.<\/span><span style=\"color: #D8DEE9\">txt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">suffix<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">date +%Y%m%d<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">for<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">file<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">find \/data\/ -type f -name &quot;*.txt&quot;<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">back up file $file to ${file}_${suffix}<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">cp<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">f<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9\">file<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9\">file<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9\">_$<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9\">suffix<\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">done<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u603b\u7ed3\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>date\u547d\u4ee4\u7528\u6cd5<\/li>\n\n\n\n<li>for\u5faa\u73af\u904d\u5386\u6587\u4ef6<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Day3 \u68c0\u6d4b\u78c1\u76d8\u5206\u533a\u8bfb\u5199\u662f\u5426\u6b63\u5e38<\/h2>\n\n\n\n<p>\u9898\u76ee\uff1a<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u5199\u4e00\u4e2a\u68c0\u6d4b\u811a\u672c\uff0c\u7528\u6765\u68c0\u6d4b\u672c\u673a\u6240\u6709\u78c1\u76d8\u5206\u533a\u662f\u5426\u8bfb\u5199\u6b63\u5e38<\/p>\n\n\n\n<p>note\uff1a\u53ef\u4ee5\u904d\u5386\u6240\u6709\u6302\u8f7d\u70b9\uff0c\u7136\u540e\u65b0\u5efa\u4e00\u4e2a\u6d4b\u8bd5\u6587\u4ef6<\/p>\n\n\n\n<p>\u7136\u540e\u518d\u5220\u9664\u6d4b\u8bd5\u6587\u4ef6\uff0c\u5982\u679c\u53ef\u4ee5\u6b63\u5e38\u521b\u5efa\u548c\u5220\u9664\uff0c\u90a3\u8bf4\u660e\u8be5\u5206\u533a\u6ca1\u95ee\u9898<\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\n# iterate all the mounts and check if we can create and del files\n:'\ndf\nFilesystem      1K-blocks      Used Available Use% Mounted on\nnone              8148136         0   8148136   0% \/usr\/lib\/modules\/5.15.167.4-microsoft-standard-WSL2\nnone              8148136         4   8148132   1% \/mnt\/wsl\ndrivers         467731452  53237236 414494216  12% \/usr\/lib\/wsl\/drivers\n\/dev\/sdc       1055762868   4183164 997876232   1% \/\nnone              8148136        76   8148060   1% \/mnt\/wslg\nnone              8148136         0   8148136   0% \/usr\/lib\/wsl\/lib\nrootfs            8144724      2208   8142516   1% \/init\nnone              8148136       784   8147352   1% \/run\nnone              8148136         0   8148136   0% \/run\/lock\nnone              8148136         0   8148136   0% \/run\/shm\ntmpfs                4096         0      4096   0% \/sys\/fs\/cgroup\nnone              8148136        76   8148060   1% \/mnt\/wslg\/versions.txt\nnone              8148136        76   8148060   1% \/mnt\/wslg\/doc\nC:\\             467731452  53237236 414494216  12% \/mnt\/c\nD:\\            1024657404 234654208 790003196  23% \/mnt\/d\nE:\\             460799996    161848 460638148   1% \/mnt\/e\ntmpfs             1629624        20   1629604   1% \/run\/user\/0\n\ndf | sed '1d' | grep -v none | grep -v :\\ | grep -v tmpfs | awk '{print $NF}'\n\/usr\/lib\/wsl\/drivers\n\/\n\/init\n\/mnt\/c\n\/mnt\/d\n\/mnt\/e\n\n'\n\nfor mount_p in `df | sed '1d' | grep -v none | grep -v :\\ | grep -v tmpfs | awk '{print $NF}'`\ndo\n        echo \"check mount point $mount_p\"\n    touch $mount_p\/testfile &amp;&amp; rm -f $mount_p\/testfile\n    if &#91; $? -ne 0 &#93; # remember here we need space\n    then\n        echo \"mount point $mount_p has problems!\"\n    else\n        echo \"mount point $mount_p is ok!\"\n    fi\ndone<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">iterate<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">all<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">mounts<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">check<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">we<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">can<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">create<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">del<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">files<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">:<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">d<\/span><span style=\"color: #D8DEE9\">f<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">Filesystem<\/span><span style=\"color: #D8DEE9FF\">      1<\/span><span style=\"color: #D8DEE9\">K<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">blocks<\/span><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #D8DEE9\">Used<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Available<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Use<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Mounted<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">         <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">usr<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">modules<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #B48EAD\">5.15<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #B48EAD\">167.4<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">microsoft<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">standard<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">WSL2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">         <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148132<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wsl<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">drivers<\/span><span style=\"color: #D8DEE9FF\">         <\/span><span style=\"color: #B48EAD\">467731452<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">53237236<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">414494216<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">12<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">usr<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wsl<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">drivers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">dev<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">sdc<\/span><span style=\"color: #D8DEE9FF\">       <\/span><span style=\"color: #B48EAD\">1055762868<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">4183164<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">997876232<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">76<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148060<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wslg<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">         <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">usr<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wsl<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">rootfs<\/span><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #B48EAD\">8144724<\/span><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #B48EAD\">2208<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8142516<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">init<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">       <\/span><span style=\"color: #B48EAD\">784<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8147352<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">run<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">         <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">run<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lock<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">         <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">run<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">shm<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">tmpfs<\/span><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">         <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">sys<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">fs<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">cgroup<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">76<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148060<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wslg<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">versions<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">txt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\">              <\/span><span style=\"color: #B48EAD\">8148136<\/span><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">76<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">8148060<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wslg<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">doc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">C<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">\\             <\/span><span style=\"color: #B48EAD\">467731452<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">53237236<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">414494216<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">12<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">D<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">\\            <\/span><span style=\"color: #B48EAD\">1024657404<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">234654208<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">790003196<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">23<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\/<\/span><span style=\"color: #EBCB8B\">mnt<\/span><span style=\"color: #ECEFF4\">\/<\/span><span style=\"color: #81A1C1\">d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">E<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">\\             <\/span><span style=\"color: #B48EAD\">460799996<\/span><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #B48EAD\">161848<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">460638148<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">e<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">tmpfs<\/span><span style=\"color: #D8DEE9FF\">             <\/span><span style=\"color: #B48EAD\">1629624<\/span><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1629604<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">run<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">user<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">df<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">sed<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">1d<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">grep<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">v<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">none<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">grep<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">v <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\">\\ <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">grep<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">v<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">tmpfs<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">awk<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">{print $NF}<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">usr<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">lib<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wsl<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">drivers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">init<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">\/<\/span><span style=\"color: #EBCB8B\">mnt<\/span><span style=\"color: #ECEFF4\">\/<\/span><span style=\"color: #81A1C1\">d<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">mnt<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">e<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #A3BE8C\">for mount_p in `df | sed <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\">1<\/span><span style=\"color: #D8DEE9\">d<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\"> | grep -v none | grep -v :<\/span><span style=\"color: #EBCB8B\">\\ <\/span><span style=\"color: #A3BE8C\">| grep -v tmpfs | awk <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9\">print<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$NF<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">check mount point $mount_p<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">touch<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$mount_p<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">testfile<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">rm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">f<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$mount_p<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">testfile<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> &#91; <\/span><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">ne<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> &#93; # <\/span><span style=\"color: #D8DEE9\">remember<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">here<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">we<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">need<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">space<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mount point $mount_p has problems!<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">mount point $mount_p is ok!<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">fi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">done<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u603b\u7ed3\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>&amp;&amp; \u8fde\u63a5\u7b26\u53ea\u6709\u524d\u9762\u7684\u547d\u4ee4\u6267\u884c\u6210\u529f\u4e86\u624d\u4f1a\u6267\u884c\u540e\u9762\u7684\u547d\u4ee4\u3002\u5728\u672c\u4f8b\u4e2d\uff0c\u53ea\u6709\u4e24\u6761\u547d\u4ee4\u90fd\u6267\u884c\u6210\u529f\u8fd4\u56de\u503c\u624d\u662f0<\/li>\n<\/ol>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Day4 \u68c0\u67e5\u6587\u4ef6<\/h2>\n\n\n\n<p>\u9898\u76ee\uff1a\u68c0\u67e5\/data\/wwwroot\/app\/\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\uff0c\u770b\u662f\u5426\u6ee1\u8db3\u4e0b\u5217\u6761\u4ef6\uff1a<\/p>\n\n\n\n<p>1\uff09\u6240\u6709\u6587\u4ef6\u6743\u9650\u4e3a644<\/p>\n\n\n\n<p>2\uff09\u6240\u6709\u76ee\u5f55\u6743\u9650\u4e3a755<\/p>\n\n\n\n<p>3\uff09\u6587\u4ef6\u548c\u76ee\u5f55\u6240\u6709\u8005\u4e3awww\uff0c\u6240\u5c5e\u7ec4\u4e3aroot<\/p>\n\n\n\n<p>\u5982\u679c\u4e0d\u6ee1\u8db3\uff0c\u6539\u6210\u8981\u7b26\u5408\u7684\u8981\u6c42<\/p>\n\n\n\n<p>\u6ce8\u610f\uff1a\u4e0d\u8981\u76f4\u63a5\u4fee\u6539\u6743\u9650\uff0c\u4e00\u5b9a\u8981\u6709\u5224\u65ad\u7684\u8fc7\u7a0b<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&lt;em>#&lt;\/em>&lt;em>!\/bin\/bash&lt;\/em>\n\ncd \/data\/wwwroot\/app\n&lt;em>if&lt;\/em> &#91; $? -ne 0 &#93;\n&lt;em>then&lt;\/em>\n    exit 1\n&lt;em>fi&lt;\/em>&lt;em>for&lt;\/em> file &lt;em>in&lt;\/em> `find .`\n&lt;em>do&lt;\/em>&lt;em># authority&lt;\/em>\n    file_authority=`stat -c %a $file`\n    &lt;em># owner&lt;\/em>\n    file_owner=`stat -c %U $file`\n    &lt;em># group&lt;\/em>\n    file_group=`stat -c %G $file`\n\n    &lt;em>if&lt;\/em> &#91; -d $file &#93;\n    &lt;em>then&lt;\/em>\n        &#91; $file_authority != '755' &#93; &amp;&amp; chmod 755 $file\n    &lt;em>else&lt;\/em>\n        &#91; $file_authority != '644' &#93; &amp;&amp; chmod 644 $file\n    &lt;em>fi&lt;\/em>\n\n    &#91; $file_owner != 'www' &#93; &amp;&amp; chown www $file\n    &#91; $file_group != 'root' &#93; &amp;&amp; chown :root $file\n&lt;em>done&lt;\/em><\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">!\/bin\/bash<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">wwwroot<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">app<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">if<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><span style=\"color: #D8DEE9FF\"> &#91; <\/span><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">ne<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> &#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">then<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">exit<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">fi<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">for<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">file<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9\">em<\/span><span style=\"color: #81A1C1\">&gt;in&lt;\/<\/span><span style=\"color: #D8DEE9\">em<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">find .<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">do<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\"># authority<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">file_authority<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">stat -c %a $file<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\"># owner<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">file_owner<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">stat -c %U $file<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\"># group<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">file_group<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">stat -c %G $file<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">if<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><span style=\"color: #D8DEE9FF\"> &#91; <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">d<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$file<\/span><span style=\"color: #D8DEE9FF\"> &#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">then<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        &#91; <\/span><span style=\"color: #D8DEE9\">$file_authority<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">755<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> &#93; <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">chmod<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">755<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$file<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">else<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        &#91; <\/span><span style=\"color: #D8DEE9\">$file_authority<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">644<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> &#93; <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">chmod<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">644<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$file<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">fi<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &#91; <\/span><span style=\"color: #D8DEE9\">$file_owner<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">www<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> &#93; <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">chown<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">www<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$file<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &#91; <\/span><span style=\"color: #D8DEE9\">$file_group<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">root<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> &#93; <\/span><span style=\"color: #81A1C1\">&amp;&amp;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">chown<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">:<\/span><span style=\"color: #D8DEE9\">root<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$file<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">done<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u603b\u7ed3\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>stat\u76f8\u5173<\/li>\n<\/ol>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u67e5\u770b\u6587\u4ef6\u6743\u9650\uff1a stat -c %a 1.txt<\/p>\n\n\n\n<p>\u67e5\u770b\u6587\u4ef6\u6240\u6709\u8005\uff1astat -c %G 1.txt<\/p>\n\n\n\n<p>\u67e5\u770b\u6587\u4ef6\u6240\u5c5e\u7ec4\uff1astat -c %U 1.txt<\/p>\n<\/blockquote>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>&amp;&amp;: \u524d\u9762\u547d\u4ee4\u6267\u884c\u6210\u529f\u518d\u6267\u884c\u540e\u9762\u547d\u4ee4<\/li>\n\n\n\n<li>||\uff1a\u524d\u9762\u547d\u4ee4\u4e0d\u6210\u529f\u518d\u6267\u884c\u540e\u9762\u547d\u4ee4<\/li>\n<\/ol>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Day 7 \u627e5\u5206\u949f\u5185\u66f4\u6539\u7684\u6587\u4ef6<\/h2>\n\n\n\n<p>\u9898\u76ee\uff1a<\/p>\n\n\n\n<p>\u6709\u4e00\u53f0\u670d\u52a1\u5668\u4f5c\u4e3aweb\u5e94\u7528\uff0c\u6709\u4e00\u4e2a\u76ee\u5f55(\/data\/web\/attachment) \u4e0d\u5b9a\u65f6\u5730\u4f1a\u88ab\u7528\u6237\u4e0a\u4f20\u65b0\u7684\u6587\u4ef6\uff0c\u4f46\u662f\u4e0d\u77e5\u9053\u4ec0\u4e48\u65f6\u5019\u4f1a\u4e0a\u4f20\u3002<\/p>\n\n\n\n<p>\u6240\u4ee5\uff0c\u9700\u8981\u6211\u4eec\u6bcf5\u5206\u949f\u505a\u4e00\u6b21\u68c0\u6d4b\u662f\u5426\u6709\u65b0\u6587\u4ef6\u751f\u6210\u3002<\/p>\n\n\n\n<p>\u5199\u4e00\u4e2ashell\u811a\u672c\u53bb\u5b8c\u6210\u68c0\u6d4b\u3002\u68c0\u6d4b\u5b8c\u6210\u540e\u82e5\u662f\u6709\u65b0\u6587\u4ef6\uff0c\u8fd8\u9700\u8981\u5c06\u65b0\u6587\u4ef6\u7684\u5217\u8868\u8f93\u51fa\u5230\u4e00\u4e2a\u6309\u5e74\u3001\u6708\u3001\u65e5\u3001\u65f6\u3001\u5206\u4e3a\u540d\u5b57\u7684\u65e5\u5fd7\u91cc<\/p>\n\n\n\n<p>\u601d\u8def\uff1a\u6bcf5\u5206\u949f\u68c0\u6d4b\u4e00\u6b21\uff0c\u90a3\u80af\u5b9a\u9700\u8981\u6709\u4e00\u4e2a\u8ba1\u5212\u4efb\u52a1\uff0c\u6bcf5\u5206\u949f\u53bb\u6267\u884c\u4e00\u6b21\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u811a\u672c\u68c0\u6d4b\u7684\u65f6\u5019\uff0c\u5c31\u662f\u4f7f\u7528find\u547d\u4ee4\u67e5\u627e5\u5206\u949f\u5185\u6709\u8fc7\u66f4\u65b0\u7684\u6587\u4ef6\uff0c<\/p>\n\n\n\n<p>\u82e5\u662f\u6709\u66f4\u65b0\uff0c\u90a3\u8fd9\u4e2a\u547d\u4ee4\u4f1a\u8f93\u51fa\u4e1c\u897f\uff0c\u5426\u5219\u662f\u6ca1\u6709\u8f93\u51fa\u7684\u3002<\/p>\n\n\n\n<p>\u6211\u4eec\u53ef\u4ee5\u628a\u8f93\u51fa\u7ed3\u679c\u7684\u884c\u6570\u4f5c\u4e3a\u6bd4\u8f83\u5bf9\u8c61\uff0c\u770b\u770b\u5b83\u662f\u5426\u5927\u4e8e0\u3002<\/p>\n<\/blockquote>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\nd=`date +%Y%m%d%H%M`\nbasedir=\/data\/web\/attachment\n\nfind $basedir -type f -mmin 5 > \/tmp\/newf.txt\n\nif &#91; -s \/tmp\/newf.txt &#93;; then\n    mv \/tmp\/newf.txt \/tmp\/$d.txt\nfi<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">d<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">date +%Y%m%d%H%M<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">basedir<\/span><span style=\"color: #81A1C1\">=\/<\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">web<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">attachment<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">find<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$basedir<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-type<\/span><span style=\"color: #D8DEE9FF\"> f -mmin 5 &gt; \/tmp\/newf.txt<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> &#91; <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">s<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">tmp<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">newf<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">txt<\/span><span style=\"color: #D8DEE9FF\"> &#93;<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">mv<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">tmp<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">newf<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">txt<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">tmp<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">$d<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">txt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">fi<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u603b\u7ed3\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>find\u7684 -mmin \u9009\u9879\u4ee5\u5206\u949f\u4e3a\u65f6\u95f4\u67e5\u627e<\/li>\n\n\n\n<li>[ -s filename ] \u8868\u793a\u5f53\u6587\u4ef6\u5b58\u5728\uff0c\u5e76\u4e14\u6587\u4ef6\u5185\u5bb9\u4e0d\u4e3a\u7a7a\u65f6\uff0c\u6761\u4ef6\u6210\u7acb<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Day10 \u76d1\u63a7\u7ad9\u70b9<\/h2>\n\n\n\n<p>\u9898\u76ee\uff1a<\/p>\n\n\n\n<p>\u5199\u4e00\u4e2a\u76d1\u63a7\u811a\u672c\uff0c\u76d1\u63a7\u67d0\u7ad9\u70b9\u8bbf\u95ee\u662f\u5426\u6b63\u5e38\u3002<\/p>\n\n\n\n<p>\u63d0\u793a\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>\u53ef\u4ee5\u5c06\u8bbf\u95ee\u7684\u7ad9\u70b9\u4ee5\u53c2\u6570\u7684\u5f62\u5f0f\u63d0\u4f9b\uff0c\u4f8b\u5982sh xxx.sh www.aminglinux.com<\/li>\n\n\n\n<li>\u72b6\u6001\u7801\u5417\u4e3a2xx\u6216\u80053xx\u8868\u793a\u6b63\u5e38<\/li>\n\n\n\n<li>\u6b63\u5e38\u65f6echo\u6b63\u5e38\uff0c\u4e0d\u6b63\u5e38\u65f6echo\u4e0d\u6b63\u5e38<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\n# check whether the host has curl conmmand\nif ! which curl &amp;> \/dev\/null\nthen\n    echo \"need install curl now\"\n    apt install curl -y\n    if &#91; $? -ne 0 &#93;; then\n        echo \"install fail\"\n        exit 1\n    fi\nfi\n\n# get status code\ncode=`curl --connect-timeout 3 -I $1 2>\/dev\/null | grep 'HTTP' | awk '{print $2}'`\n\n# if code is 2xx or 3xx, condition pass\nif echo $code | grep -qE '^2&#91;0-9&#93;&#91;0-9&#93;|^3&#91;0-9&#93;&#91;0-9&#93;'\nthen\n    echo \"$1 connect success\"\nelse\n    echo \"$1 connect fail\"\nfi<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">check<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">whether<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">host<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">has<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">conmmand<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">which<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">dev<\/span><span style=\"color: #81A1C1\">\/null<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">need install curl now<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">apt<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> &#91; <\/span><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">ne<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> &#93;; <\/span><span style=\"color: #D8DEE9\">then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">install fail<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">exit<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">fi<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">fi<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">get<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">status<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">code<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">code<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">curl --connect-timeout 3 -I $1 2&gt;\/dev\/null | grep &#39;HTTP&#39; | awk &#39;{print $2}&#39;<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #D8DEE9\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">code<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">is<\/span><span style=\"color: #D8DEE9FF\"> 2<\/span><span style=\"color: #D8DEE9\">xx<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">or<\/span><span style=\"color: #D8DEE9FF\"> 3<\/span><span style=\"color: #D8DEE9\">xx<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">condition<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pass<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">$code<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">|<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">grep<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">qE<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">^2&#91;0-9&#93;&#91;0-9&#93;|^3&#91;0-9&#93;&#91;0-9&#93;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">$1 connect success<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">$1 connect fail<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">fi<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Day19 \u5de1\u68c0\u7cfb\u7edf\u670d\u52a1<\/h2>\n\n\n\n<p>\u811a\u672c\u9700\u6c42\uff1a<\/p>\n\n\n\n<p>\u7f16\u5199\u4e00\u4e2a\u5de1\u68c0\u811a\u672c\uff0c\u7528\u6765\u68c0\u6d4b\u7cfb\u7edf\u91cc\u9762\u6240\u6709\u670d\u52a1\u662f\u5426\u90fd\u6b63\u5e38\u8fd0\u884c\u3002<\/p>\n\n\n\n<p>\u5047\u5b9a\uff0c\u7cfb\u7edf\u8fd0\u884c\u7684\u670d\u52a1\u6709Nginx\u3001MySQL\u3001Redis\u3001Tomcat<\/p>\n\n\n\n<p>\u8981\u6c42\u811a\u672c\u6709\u5185\u5bb9\u8f93\u51fa\uff0c\u53ef\u4ee5\u660e\u786e\u544a\u77e5\u670d\u52a1\u662f\u5426\u6b63\u5e38\u8fd0\u884c\u3002<\/p>\n\n\n\n<p>\u63d0\u793a\uff1a<\/p>\n\n\n\n<p>1)\u5982\u679c\u670d\u52a1\u8fdb\u7a0b\u5b58\u5728\u5e76\u4e14\u7aef\u53e3\u76d1\u542c\u8bf4\u660e\u670d\u52a1\u6b63\u5e38\u3002<\/p>\n\n\n\n<p>2)Nginx:\u7aef\u53e3443<\/p>\n\n\n\n<p>3)MySQL\u7aef\u53e33306<\/p>\n\n\n\n<p>4)Redis\u7aef\u53e36379<\/p>\n\n\n\n<p>5)Tomcat\u7aef\u53e38825<\/p>\n\n\n\n<p>6)\u8fdb\u7a0b\u662f\u5426\u5b58\u5728\u4f7f\u7528ps aux |grep &#8216;xxx&#8217;<\/p>\n\n\n\n<p>7)\u7aef\u53e3\u662f\u5426\u5b58\u5728\u4f7f\u7528ss -lnp |grep &#8216;xxxx&#8217;<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>&lt;em>#!\/bin\/bash&lt;\/em>\n\ncheck_tools()\n{\n    &lt;em>if&lt;\/em> ! which pgrep &amp;> \/dev\/null\n    &lt;em>then&lt;\/em>\n        echo \"need install pgrep now\"\n        apt install pgrep -y\n        &lt;em>if&lt;\/em> &#91; $? -ne 0 &#93;; &lt;em>then&lt;\/em>\n            echo \"install pgrep fail\"\n            exit 1\n        &lt;em>fi&lt;\/em>\n    &lt;em>fi&lt;\/em>\n    \n    &lt;em>if&lt;\/em> ! which ss &amp;> \/dev\/null\n    &lt;em>then&lt;\/em>\n        echo \"need install ss now\"\n        apt install ss -y\n        &lt;em>if&lt;\/em> &#91; $? -ne 0 &#93;; &lt;em>then&lt;\/em>\n            echo \"install ss fail\"\n            exit 1\n        &lt;em>fi&lt;\/em>\n    &lt;em>fi&lt;\/em>\n}\n\ncheck_ps()\n{\n    &lt;em>if&lt;\/em> pgrep \"&lt;em>$1&lt;\/em>\" &amp;> \/dev\/null\n    &lt;em>then&lt;\/em>\n        &lt;em>return&lt;\/em> 0\n    &lt;em>else&lt;\/em>\n        &lt;em>return&lt;\/em> 1\n    &lt;em>fi&lt;\/em>\n}\n\ncheck_port()\n{\n    port_n=`ss -lnp | grep \":&lt;em>$1&lt;\/em> \" | wc -l`\n    &lt;em>if&lt;\/em> &#91; $port_n -ne 0 &#93;\n    &lt;em>then&lt;\/em>\n        &lt;em>return&lt;\/em> 0\n    &lt;em>else&lt;\/em>\n        &lt;em>return&lt;\/em> 1\n    &lt;em>fi&lt;\/em>\n}\n\ncheck_srv()\n{\n    &lt;em>if&lt;\/em> check_ps &lt;em>$1&lt;\/em> &amp;&amp; check_port &lt;em>$1then&lt;\/em>\n        echo \"&lt;em>$1&lt;\/em> is running\"\n    &lt;em>else&lt;\/em>\n        echo \"&lt;em>$1&lt;\/em> is not running\"\n    &lt;em>fi&lt;\/em>\n}\n\ncheck_tools\ncheck_srv nginx 443\ncheck_srv mysql 3306\ncheck_srv redis 6379\ncheck_srv java 8825<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">#!\/bin\/bash<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_tools<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">if<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">which<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pgrep<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">dev<\/span><span style=\"color: #81A1C1\">\/null<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">then<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">need install pgrep now<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">apt<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pgrep<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">if<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><span style=\"color: #D8DEE9FF\"> &#91; <\/span><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">ne<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> &#93;; <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9\">em<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9\">then<\/span><span style=\"color: #81A1C1\">&lt;\/<\/span><span style=\"color: #D8DEE9\">em<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">install pgrep fail<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">exit<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">fi<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">fi<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">if<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">which<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ss<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&amp;&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">dev<\/span><span style=\"color: #81A1C1\">\/null<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">then<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">need install ss now<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">apt<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ss<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">if<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><span style=\"color: #D8DEE9FF\"> &#91; <\/span><span style=\"color: #D8DEE9\">$<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">ne<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> &#93;; <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9\">em<\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9\">then<\/span><span style=\"color: #81A1C1\">&lt;\/<\/span><span style=\"color: #D8DEE9\">em<\/span><span style=\"color: #81A1C1\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">echo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">install ss fail<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">exit<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">fi<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">&lt;em&gt;<\/span><span style=\"color: #D8DEE9FF\">fi<\/span><span style=\"color: #81A1C1\">&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_ps<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    &lt;em&gt;if&lt;\/em&gt; pgrep <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&lt;em&gt;$1&lt;\/em&gt;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #88C0D0\"> &amp;&gt; \/dev\/null<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;then&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        &lt;em&gt;return&lt;\/em&gt; 0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;else&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        &lt;em&gt;return&lt;\/em&gt; 1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;fi&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_port()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    port_n=<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #A3BE8C\">ss -lnp | grep &quot;:&lt;em&gt;$1&lt;\/em&gt; &quot; | wc -l<\/span><span style=\"color: #ECEFF4\">`<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;if&lt;\/em&gt; &#91; $port_n -ne 0 &#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;then&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        &lt;em&gt;return&lt;\/em&gt; 0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;else&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        &lt;em&gt;return&lt;\/em&gt; 1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;fi&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_srv()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;if&lt;\/em&gt; check_ps &lt;em&gt;$1&lt;\/em&gt; &amp;&amp; check_port &lt;em&gt;$1then&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&lt;em&gt;$1&lt;\/em&gt; is running<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;else&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">        echo <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">&lt;em&gt;$1&lt;\/em&gt; is not running<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">    &lt;em&gt;fi&lt;\/em&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_tools<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_srv nginx 443<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_srv mysql 3306<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_srv redis 6379<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">check_srv java 8825<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u603b\u7ed3\uff1a<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>\u5de7\u7528\u51fd\u6570\uff0c\u51cf\u5c11\u4ee3\u7801\u5197\u4f59<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Day1 \u5907\u4efd\u6587\u4ef6 shell\u811a\u672c\u4e00\u5929\u4e00\u7ec3-day1_\u54d4\u54e9\u54d4\u54e9_bilibili \u9898\u76ee\uff1a \u5199\u4e00\u4e2a\u811a\u672c\uff0c\u904d\u5386\/d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":98,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3],"tags":[29,31,28,30],"class_list":["post-131","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-shell","category-coding_language","tag-bash","tag-learn","tag-shell","tag-30"],"_links":{"self":[{"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/posts\/131"}],"collection":[{"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":13,"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/posts\/131\/revisions"}],"predecessor-version":[{"id":290,"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/posts\/131\/revisions\/290"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/media\/98"}],"wp:attachment":[{"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/media?parent=131"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/categories?post=131"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/yangnanbei.top\/index.php\/wp-json\/wp\/v2\/tags?post=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}