<script type="application/ld+json">{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.simcentric.com/tc/"},{"@type":"ListItem","position":2,"name":"如何在多台主機上執行遠端命令?","item":"https://www.simcentric.com/tc/hong-kong-dedicated-server-tc/how-to-execute-remote-commands-on-multiple-hosts/"}]}</script> {"id":15049,"date":"2024-08-26T14:28:52","date_gmt":"2024-08-26T06:28:52","guid":{"rendered":"https:\/\/www.simcentric.com\/uncategorized-tc\/how-to-execute-remote-commands-on-multiple-hosts\/"},"modified":"2024-08-26T14:37:45","modified_gmt":"2024-08-26T06:37:45","slug":"how-to-execute-remote-commands-on-multiple-hosts","status":"publish","type":"post","link":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/","title":{"rendered":"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row el_class=&#8221;blog-detail-section&#8221;][vc_column][vc_column_text]<\/p>\n<p>\u7cfb\u7d71\u7ba1\u7406\u54e1\u7d93\u5e38\u4f9d\u8cf4\u9ad8\u6548\u7684\u5de5\u5177\u4f86\u7c21\u5316\u65e5\u5e38\u4efb\u52d9,\u7279\u5225\u662f\u5c0d\u65bc<strong><a href=\"https:\/\/www.simcentric.com\/tc\/products\/dedicated-server-hk\/\" target=\"_blank\" rel=\"noopener\">\u7368\u7acb\u4f3a\u670d\u5668<\/a><\/strong>\u7528\u6236\u800c\u8a00\u3002<strong><a href=\"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server\/solving-linux-cpu-100-issue-with-one-shell-script\/\" target=\"_blank\" rel=\"noopener\">Shell\u8173\u672c<\/a><\/strong>\u662f\u7cfb\u7d71\u7ba1\u7406\u54e1\u5de5\u5177\u7bb1\u4e2d\u4e0d\u53ef\u6216\u7f3a\u7684\u8cc7\u7522,\u63d0\u4f9b\u81ea\u52d5\u5316\u548c\u63d0\u9ad8\u751f\u7522\u529b\u3002\u672c\u6587\u4ecb\u7d39\u4e86\u6bcf\u500b\u7cfb\u7d71\u7ba1\u7406\u54e1\u90fd\u61c9\u8a72\u638c\u63e1\u7684\u4e94\u500b\u57fa\u672cshell\u8173\u672c\u3002<\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row el_class=&#8221;blog-detail-section&#8221;][vc_column][vc_column_text]<\/p>\n<h2><strong>1. MySQL\u4e3b\u5f9e\u540c\u6b65\u76e3\u63a7<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u76e3\u63a7MySQL\u4e3b\u5f9e\u540c\u6b65\u72c0\u614b,\u4e26\u5728\u6aa2\u6e2c\u5230\u4efb\u4f55\u7570\u5e38\u6642\u767c\u9001\u96fb\u5b50\u90f5\u4ef6\u8b66\u5831:<\/p>\n<pre><code>#!\/bin\/bash\r\nHOST=localhost\r\nUSER=root\r\nPASSWD=123.com\r\nIO_SQL_STATUS=$(mysql -h$HOST -u$USER -p$PASSWD -e 'show slave status\\G' 2&gt;\/dev\/null |awk '\/Slave_.*_Running:\/{print $1$2}')\r\nfor i in $IO_SQL_STATUS; do\r\n    THREAD_STATUS_NAME=${i%:*}\r\n    THREAD_STATUS=${i#*:}\r\n    if [ \"$THREAD_STATUS\" != \"Yes\" ]; then\r\n        echo \"Error: MySQL Master-Slave $THREAD_STATUS_NAME status is $THREAD_STATUS!\" |mail -s \"Master-Slave Staus\" xxx@163.com\r\n    fi\r\ndone<\/code><\/pre>\n<h2><strong>2. \u5373\u6642\u76ee\u9304\u76e3\u63a7\u548c\u6a94\u6848\u540c\u6b65<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u76e3\u63a7\u6307\u5b9a\u76ee\u9304\u7684\u8b8a\u5316\u4e26\u5373\u6642\u540c\u6b65\u6a94\u6848:<\/p>\n<pre><code>#!\/bin\/bash\r\n\r\nMON_DIR=\/opt\r\ninotifywait -mqr --format %f -e create $MON_DIR |\\\r\nwhile read files; do\r\n   rsync -avz \/opt \/tmp\/opt\r\n   #echo \"$(date +'%F %T') create $files\" | mail -s \"dir monitor\" xxx@163.com\r\ndone<\/code><\/pre>\n<h2><strong>3. \u6279\u91cf\u5efa\u7acb\u7528\u6236\u4e26\u8a2d\u7f6e\u5bc6\u78bc<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u53ef\u4ee5\u5efa\u7acb\u591a\u500b\u7528\u6236\u4e26\u751f\u6210\u96a8\u6a5f\u5bc6\u78bc:<\/p>\n<pre><code>#!\/bin\/bash\r\nDATE=$@\r\nUSER_FILE=user.txt\r\nfor USER in $USER_LIST; do\r\n    if ! id $USER &amp;&gt;\/dev\/null; then\r\n        PASS=$(echo $RANDOM |md5sum |cut -c 1-8)\r\n        useradd $USER\r\n        echo $PASS |passwd --stdin $USER &amp;&gt;\/dev\/null\r\n        echo \"$USER   $PASS\" &gt;&gt; $USER_FILE\r\n        echo \"$USER User create successful.\"\r\n    else\r\n        echo \"$USER User already exists!\"\r\n    fi\r\ndone<\/code><\/pre>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row el_class=&#8221;blog-detail-section&#8221;][vc_column][vc_column_text]<\/p>\n<h2><strong>4. \u6279\u91cf\u6aa2\u67e5\u7db2\u7ad9\u53ef\u7528\u6027<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u6aa2\u67e5\u591a\u500b\u7db2\u7ad9\u7684\u53ef\u7528\u6027\u4e26\u5831\u544a\u4efb\u4f55\u8a2a\u554f\u5931\u6557:<\/p>\n<pre><code>#!\/bin\/bash\r\nURL_LIST=\"www.baidu.com www.ctnrs.com\"\r\nfor URL in $URL_LIST; do\r\n    FAIL_COUNT=0\r\n    for ((i=1;i&lt;=3;i++)); do\r\n        HTTP_CODE=$(curl -o \/dev\/null --connect-timeout 3 -s -w \"%{http_code}\" $URL)\r\n        if [ $HTTP_CODE -eq 200 ]; then\r\n            echo \"$URL OK\"\r\n            break\r\n        else\r\n            echo \"$URL retry $FAIL_COUNT\"\r\n            let FAIL_COUNT++\r\n        fi\r\n    done\r\n    if [ $FAIL_COUNT -eq 3 ]; then\r\n        echo \"Warning: $URL Access failure!\"\r\n    fi\r\ndone<\/code><\/pre>\n<h2><strong>5. \u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u5141\u8a31\u5728\u591a\u53f0\u9060\u7aef\u4e3b\u6a5f\u4e0a\u57f7\u884c\u547d\u4ee4:<\/p>\n<pre><code>#!\/bin\/bash\r\nCOMMAND=$*\r\nHOST_INFO=host.info\r\nfor IP in $(awk '\/^[^#]\/{print $1}' $HOST_INFO); do\r\n    USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)\r\n    PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)\r\n    PASS=$(awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO)\r\n    expect -c \"\r\n       spawn ssh -p $PORT $USER@$IP\r\n       expect {\r\n          \\\"(yes\/no)\\\" {send \\\"yes\\r\\\"; exp_continue}\r\n          \\\"password:\\\" {send \\\"$PASS\\r\\\"; exp_continue}\r\n          \\\"$USER@*\\\" {send \\\"$COMMAND\\r exit\\r\\\"; exp_continue}\r\n       }\r\n    \"\r\n    echo \"-------------------\"\r\ndone<\/code><\/pre>\n<h2><strong>6. \u4e00\u9375\u90e8\u7f72LNMP\u7db2\u7ad9\u5e73\u53f0\u8173\u672c<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u5141\u8a31\u4e00\u9375\u90e8\u7f72LNMP(Linux, Nginx, MySQL, PHP)\u7db2\u7ad9\u5e73\u53f0:<\/p>\n<pre><code>\r\n#!\/bin\/bash\r\nNGINX_V=1.15.6\r\nPHP_V=5.6.36\r\nTMP_DIR=\/tmp\r\n\r\nINSTALL_DIR=\/usr\/local\r\n\r\nPWD_C=$PWD\r\n\r\necho\r\necho -e \"\\t\u9078\u55ae\\n\"\r\necho -e \"1. \u5b89\u88ddNginx\"\r\necho -e \"2. \u5b89\u88ddPHP\"\r\necho -e \"3. \u5b89\u88ddMySQL\"\r\necho -e \"4. \u90e8\u7f72LNMP\"\r\necho -e \"9. \u9000\u51fa\"\r\n\r\nfunction command_status_check() {\r\n        if [ $? -ne 0 ]; then\r\n                echo $1\r\n                exit\r\n        fi\r\n}\r\n\r\nfunction install_nginx() {\r\n    cd $TMP_DIR\r\n    yum install -y gcc gcc-c++ make openssl-devel pcre-devel wget\r\n    wget http:\/\/nginx.org\/download\/nginx-${NGINX_V}.tar.gz\r\n    tar zxf nginx-${NGINX_V}.tar.gz\r\n    cd nginx-${NGINX_V}\r\n    .\/configure --prefix=$INSTALL_DIR\/nginx \\\r\n    --with-http_ssl_module \\\r\n    --with-http_stub_status_module \\\r\n    --with-stream\r\n    command_status_check \"Nginx - \u74b0\u5883\u6aa2\u67e5\u5931\u6557!\"\r\n    make -j 4\r\n    command_status_check \"Nginx - \u7de8\u8b6f\u5931\u6557!\"\r\n    make install\r\n    command_status_check \"Nginx - \u5b89\u88dd\u5931\u6557!\"\r\n    mkdir -p $INSTALL_DIR\/nginx\/conf\/vhost\r\n    alias cp=cp ; cp -rf $PWD_C\/nginx.conf $INSTALL_DIR\/nginx\/conf\r\n    rm -rf $INSTALL_DIR\/nginx\/html\/*\r\n    echo \"ok\" &gt; $INSTALL_DIR\/nginx\/html\/status.html\r\n    echo '<!--?php echo \"ok\"?-->' &gt; $INSTALL_DIR\/nginx\/html\/status.php\r\n    $INSTALL_DIR\/nginx\/sbin\/nginx\r\n    command_status_check \"Nginx - \u555f\u52d5\u5931\u6557!\"\r\n}\r\n\r\nfunction install_php() {\r\n        cd $TMP_DIR\r\n    yum install -y gcc gcc-c++ make gd-devel libxml2-devel \\\r\n        libcurl-devel libjpeg-devel libpng-devel openssl-devel \\\r\n        libmcrypt-devel libxslt-devel libtidy-devel\r\n    wget http:\/\/docs.php.net\/distributions\/php-${PHP_V}.tar.gz\r\n    tar zxf php-${PHP_V}.tar.gz\r\n    cd php-${PHP_V}\r\n    .\/configure --prefix=$INSTALL_DIR\/php \\\r\n    --with-config-file-path=$INSTALL_DIR\/php\/etc \\\r\n    --enable-fpm --enable-opcache \\\r\n    --with-mysql --with-mysqli --with-pdo-mysql \\\r\n    --with-openssl --with-zlib --with-curl --with-gd \\\r\n    --with-jpeg-dir --with-png-dir --with-freetype-dir \\\r\n    --enable-mbstring --enable-hash\r\n    command_status_check \"PHP - \u74b0\u5883\u6aa2\u67e5\u5931\u6557!\"\r\n    make -j 4\r\n    command_status_check \"PHP - \u7de8\u8b6f\u5931\u6557!\"\r\n    make install\r\n    command_status_check \"PHP - \u5b89\u88dd\u5931\u6557!\"\r\n    cp php.ini-production $INSTALL_DIR\/php\/etc\/php.ini\r\n    cp sapi\/fpm\/php-fpm.conf $INSTALL_DIR\/php\/etc\/php-fpm.conf\r\n    cp sapi\/fpm\/init.d.php-fpm \/etc\/init.d\/php-fpm\r\n    chmod +x \/etc\/init.d\/php-fpm\r\n    \/etc\/init.d\/php-fpm start\r\n    command_status_check \"PHP - \u555f\u52d5\u5931\u6557!\"\r\n}\r\n\r\nread -p \"\u8acb\u8f38\u5165\u4e00\u500b\u6578\u5b57: \" number\r\ncase $number in\r\n    1)\r\n        install_nginx;;\r\n    2)\r\n        install_php;;\r\n    3)\r\n        install_mysql;;\r\n    4)\r\n        install_nginx\r\n        install_php\r\n        ;;\r\n    9)\r\n        exit;;\r\nesac<\/code><\/pre>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row el_class=&#8221;blog-detail-section&#8221;][vc_column][vc_column_text]<\/p>\n<h2><strong>7. \u4e00\u9375\u6aa2\u67e5\u4f3a\u670d\u5668\u8cc7\u6e90\u4f7f\u7528\u60c5\u6cc1<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u63d0\u4f9b\u4f3a\u670d\u5668\u8cc7\u6e90\u4f7f\u7528\u60c5\u6cc1\u7684\u5168\u9762\u6982\u89bd,\u5305\u62ecCPU\u3001\u8a18\u61b6\u9ad4\u3001\u78c1\u789f\u548cTCP\u9023\u63a5\u72c0\u614b:<\/p>\n<pre><code>#!\/bin\/bash\r\nfunction cpu() {\r\n    NUM=1\r\n    while [ $NUM -le 3 ]; do\r\n        util=`vmstat |awk '{if(NR==3)print 100-$15\"%\"}'`\r\n        user=`vmstat |awk '{if(NR==3)print $13\"%\"}'`\r\n        sys=`vmstat |awk '{if(NR==3)print $14\"%\"}'`\r\n        iowait=`vmstat |awk '{if(NR==3)print $16\"%\"}'`\r\n        echo \"CPU - \u4f7f\u7528\u7387: $util , IO\u7b49\u5f85: $iowait\"\r\n        let NUM++\r\n        sleep 1\r\n    done\r\n}\r\n\r\nfunction memory() {\r\n    total=`free -m |awk '{if(NR==2)printf \"%.1f\",$2\/1024}'`\r\n    used=`free -m |awk '{if(NR==2) printf \"%.1f\",($2-$NF)\/1024}'`\r\n    available=`free -m |awk '{if(NR==2) printf \"%.1f\",$NF\/1024}'`\r\n    echo \"\u8a18\u61b6\u9ad4 - \u7e3d\u8a08: ${total}G , \u5df2\u7528: ${used}G , \u53ef\u7528: ${available}G\"\r\n}\r\n\r\nfunction disk() {\r\n    fs=$(df -h |awk '\/^\\\/dev\/{print $1}')\r\n    for p in $fs; do\r\n        mounted=$(df -h |awk '$1==\"'$p'\"{print $NF}')\r\n        size=$(df -h |awk '$1==\"'$p'\"{print $2}')\r\n        used=$(df -h |awk '$1==\"'$p'\"{print $3}')\r\n        used_percent=$(df -h |awk '$1==\"'$p'\"{print $5}')\r\n        echo \"\u78c1\u789f - \u639b\u8f09\u9ede: $mounted , \u7e3d\u5927\u5c0f: $size , \u5df2\u7528: $used , \u4f7f\u7528\u7387: $used_percent\"\r\n    done\r\n}\r\n\r\nfunction tcp_status() {\r\n    summary=$(ss -antp |awk '{status[$1]++}END{for(i in status) printf i\":\"status[i]\" \"}')\r\n    echo \"TCP\u9023\u63a5\u72c0\u614b - $summary\"\r\n}\r\n\r\ncpu\r\nmemory\r\ndisk\r\ntcp_status<\/code><\/pre>\n<h2><strong>8. \u67e5\u627e\u9ad8CPU\u548c\u8a18\u61b6\u9ad4\u4f7f\u7528\u9032\u7a0b\u7684\u8173\u672c<\/strong><\/h2>\n<p>\u9019\u4e9b\u547d\u4ee4\u5e6b\u52a9\u8b58\u5225\u6d88\u8017CPU\u548c\u8a18\u61b6\u9ad4\u8cc7\u6e90\u6700\u591a\u7684\u9032\u7a0b:<\/p>\n<pre><code>ps -eo user,pid,pcpu,pmem,args --sort=-pcpu  |head -n 10\r\n\r\nps -eo user,pid,pcpu,pmem,args --sort=-pmem  |head -n 10<\/code><\/pre>\n<h2><strong>9. \u81ea\u52d5\u5316Java\u5c08\u6848\u90e8\u7f72(Tomcat)<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u81ea\u52d5\u5316\u4e86\u5c07Java\u5c08\u6848\u90e8\u7f72\u5230Tomcat\u4f3a\u670d\u5668\u7684\u904e\u7a0b,\u5305\u62ec\u4ee3\u78bc\u62c9\u53d6\u3001\u69cb\u5efa\u548c\u90e8\u7f72:<\/p>\n<pre><code>#!\/bin\/bash\r\nDATE=$(date +%F_%T)\r\n\r\nTOMCAT_NAME=$1\r\nTOMCAT_DIR=\/usr\/local\/$TOMCAT_NAME\r\nROOT=$TOMCAT_DIR\/webapps\/ROOT\r\n\r\nBACKUP_DIR=\/data\/backup\r\nWORK_DIR=\/tmp\r\nPROJECT_NAME=tomcat-java-demo\r\n\r\n# \u62c9\u53d6\u4ee3\u78bc\r\ncd $WORK_DIR\r\nif [ ! -d $PROJECT_NAME ]; then\r\n   git clone https:\/\/github.com\/lizhenliang\/tomcat-java-demo\r\n   cd $PROJECT_NAME\r\nelse\r\n   cd $PROJECT_NAME\r\n   git pull\r\nfi\r\n\r\n# \u69cb\u5efa\r\nmvn clean package -Dmaven.test.skip=true\r\nif [ $? -ne 0 ]; then\r\n   echo \"maven\u69cb\u5efa\u5931\u6557!\"\r\n   exit 1\r\nfi\r\n\r\n# \u90e8\u7f72\r\nTOMCAT_PID=$(ps -ef |grep \"$TOMCAT_NAME\" |egrep -v \"grep|$$\" |awk 'NR==1{print $2}')\r\n[ -n \"$TOMCAT_PID\" ] &amp;&amp; kill -9 $TOMCAT_PID\r\n[ -d $ROOT ] &amp;&amp; mv $ROOT $BACKUP_DIR\/${TOMCAT_NAME}_ROOT$DATE\r\nunzip $WORK_DIR\/$PROJECT_NAME\/target\/*.war -d $ROOT\r\n$TOMCAT_DIR\/bin\/startup.sh<\/code><\/pre>\n<h2><strong>10. \u81ea\u52d5\u5316PHP\u5c08\u6848\u90e8\u7f72\u8173\u672c<\/strong><\/h2>\n<p>\u6b64\u8173\u672c\u7c21\u5316\u4e86PHP\u5c08\u6848\u7684\u90e8\u7f72,\u8655\u7406\u4ee3\u78bc\u6aa2\u7d22\u4e26\u90e8\u7f72\u5230\u6307\u5b9a\u7684Web\u6839\u76ee\u9304:<\/p>\n<pre><code>#!\/bin\/bash\r\nDATE=$(date +%F_%T)\r\n\r\nWWWROOT=\/usr\/local\/nginx\/html\/$1\r\n\r\nBACKUP_DIR=\/data\/backup\r\nWORK_DIR=\/tmp\r\nPROJECT_NAME=php-demo\r\n\r\n# \u62c9\u53d6\u4ee3\u78bc\r\ncd $WORK_DIR\r\nif [ ! -d $PROJECT_NAME ]; then\r\n   git clone https:\/\/github.com\/lizhenliang\/php-demo\r\n   cd $PROJECT_NAME\r\nelse\r\n   cd $PROJECT_NAME\r\n   git pull\r\nfi\r\n\r\n# \u90e8\u7f72\r\nif [ ! -d $WWWROOT ]; then\r\n   mkdir -p $WWWROOT\r\n   rsync -avz --exclude=.git $WORK_DIR\/$PROJECT_NAME\/* $WWWROOT\r\nelse\r\n   rsync -avz --exclude=.git $WORK_DIR\/$PROJECT_NAME\/* $WWWROOT\r\nfi<\/code><\/pre>\n<p>\u9019\u4e9b\u984d\u5916\u7684<strong><a href=\"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server\/15-powerful-linux-shell-text-processing-hacks\/\" target=\"_blank\" rel=\"noopener\">Shell\u8173\u672c<\/a><\/strong>\u88dc\u5145\u4e86\u4e4b\u524d\u7684\u96c6\u5408,\u6db5\u84cb\u4e86\u7cfb\u7d71\u7ba1\u7406\u7684\u95dc\u9375\u65b9\u9762,\u5982\u8cc7\u6e90\u76e3\u63a7\u3001\u5099\u4efd\u3001\u65e5\u8a8c\u7ba1\u7406\u3001\u5b89\u5168\u66f4\u65b0\u548c\u7db2\u8def\u6383\u63cf\u3002\u5c07\u9019\u4e9b\u8173\u672c\u7d0d\u5165\u60a8\u7684\u65e5\u5e38\u5de5\u4f5c\u4e2d,\u53ef\u4ee5\u986f\u8457\u63d0\u9ad8\u6548\u7387\u4e26\u7dad\u8b77\u66f4\u5065\u58ef\u548c\u5b89\u5168\u7684\u7cfb\u7d71\u57fa\u790e\u8a2d\u65bd\u3002<\/p>\n<p>\u8acb\u8a18\u4f4f\u67e5\u770b\u4e26\u81ea\u5b9a\u7fa9\u9019\u4e9b\u8173\u672c\u4ee5\u9069\u61c9\u60a8\u7684\u7279\u5b9a\u74b0\u5883\u548c\u9700\u6c42\u3002\u5b9a\u671f\u6e2c\u8a66\u548c\u66f4\u65b0\u5c0d\u78ba\u4fdd\u5b83\u5011\u6301\u7e8c\u6709\u6548\u81f3\u95dc\u91cd\u8981\u3002\u6709\u4e86\u9019\u4e9b\u5f37\u5927\u7684\u5de5\u5177,\u60a8\u5c07\u80fd\u5920\u8f15\u9b06\u7cbe\u78ba\u5730\u8655\u7406\u5404\u7a2e\u7cfb\u7d71\u7ba1\u7406\u4efb\u52d9\u3002<\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row el_class=&#8221;blog-detail-section&#8221;][vc_ [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":2,"featured_media":15045,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[61],"tags":[3196,3197,3198,3195,3166],"class_list":["post-15049","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hong-kong-dedicated-server-tc","tag-mysql-monitoring-tc","tag-file-synchronization-tc","tag-user-management-tc","tag-shell-scripts-tc","tag-system-administration-tc"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?<\/title>\n<meta name=\"description\" content=\"\u63a2\u7d22\u6bcf\u4f4d\u7cfb\u7d71\u7ba1\u7406\u54e1\u90fd\u61c9\u8a72\u638c\u63e1\u768410\u500b\u5f37\u5927shell\u8173\u672c\u3002\u9019\u4e9b\u8173\u672c\u6db5\u84cb\u4e86MySQL\u76e3\u63a7\u3001\u6a94\u6848\u540c\u6b65\u548c\u4f7f\u7528\u8005\u7ba1\u7406\u7b49\u65b9\u9762\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/15049\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"company\" \/>\n<meta property=\"og:title\" content=\"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/15049\" \/>\n<meta property=\"og:site_name\" content=\"\u65b0\u5929\u57df\u4e92\u806f\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-26T06:28:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-26T06:37:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.simcentric.com\/wp-content\/uploads\/2024\/08\/sim-blog-2024-08-26D.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"613\" \/>\n\t<meta property=\"og:image:height\" content=\"343\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?","description":"\u63a2\u7d22\u6bcf\u4f4d\u7cfb\u7d71\u7ba1\u7406\u54e1\u90fd\u61c9\u8a72\u638c\u63e1\u768410\u500b\u5f37\u5927shell\u8173\u672c\u3002\u9019\u4e9b\u8173\u672c\u6db5\u84cb\u4e86MySQL\u76e3\u63a7\u3001\u6a94\u6848\u540c\u6b65\u548c\u4f7f\u7528\u8005\u7ba1\u7406\u7b49\u65b9\u9762\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/15049","og_locale":"zh_TW","og_type":"company","og_title":"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?","og_url":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/15049","og_site_name":"\u65b0\u5929\u57df\u4e92\u806f","article_published_time":"2024-08-26T06:28:52+00:00","article_modified_time":"2024-08-26T06:37:45+00:00","og_image":[{"width":613,"height":343,"url":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2024\/08\/sim-blog-2024-08-26D.jpg","type":"image\/jpeg"}],"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/#article","isPartOf":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/"},"author":{"name":"Debbie Ng","@id":"https:\/\/simcentric.com\/tc\/#\/schema\/person\/0bfc8768eb7caacbfab4a0855d805626"},"headline":"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?","datePublished":"2024-08-26T06:28:52+00:00","dateModified":"2024-08-26T06:37:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/"},"wordCount":90,"publisher":{"@id":"https:\/\/simcentric.com\/tc\/#organization"},"image":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2024\/08\/sim-blog-2024-08-26D.jpg","keywords":["MySQL\u76e3\u63a7","\u6a94\u6848\u540c\u6b65","\u4f7f\u7528\u8005\u7ba1\u7406","shell\u8173\u672c","\u7cfb\u7d71\u7ba1\u7406"],"articleSection":["\u9999\u6e2f\u4f3a\u670d\u5668"],"inLanguage":"zh-HK"},{"@type":"WebPage","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/","url":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/","name":"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?","isPartOf":{"@id":"https:\/\/simcentric.com\/tc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/#primaryimage"},"image":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/#primaryimage"},"thumbnailUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2024\/08\/sim-blog-2024-08-26D.jpg","datePublished":"2024-08-26T06:28:52+00:00","dateModified":"2024-08-26T06:37:45+00:00","description":"\u63a2\u7d22\u6bcf\u4f4d\u7cfb\u7d71\u7ba1\u7406\u54e1\u90fd\u61c9\u8a72\u638c\u63e1\u768410\u500b\u5f37\u5927shell\u8173\u672c\u3002\u9019\u4e9b\u8173\u672c\u6db5\u84cb\u4e86MySQL\u76e3\u63a7\u3001\u6a94\u6848\u540c\u6b65\u548c\u4f7f\u7528\u8005\u7ba1\u7406\u7b49\u65b9\u9762\u3002","breadcrumb":{"@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/#breadcrumb"},"inLanguage":"zh-HK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/"]}]},{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/#primaryimage","url":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2024\/08\/sim-blog-2024-08-26D.jpg","contentUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2024\/08\/sim-blog-2024-08-26D.jpg","width":613,"height":343,"caption":"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7a0b\u547d\u4ee4"},{"@type":"BreadcrumbList","@id":"https:\/\/www.simcentric.com\/tc\/hong-kong-dedicated-server-tc\/how-to-execute-remote-commands-on-multiple-hosts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.simcentric.com\/tc\/"},{"@type":"ListItem","position":2,"name":"\u5982\u4f55\u5728\u591a\u53f0\u4e3b\u6a5f\u4e0a\u57f7\u884c\u9060\u7aef\u547d\u4ee4?"}]},{"@type":"WebSite","@id":"https:\/\/simcentric.com\/tc\/#website","url":"https:\/\/simcentric.com\/tc\/","name":"Simcentric Solutions","description":"","publisher":{"@id":"https:\/\/simcentric.com\/tc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simcentric.com\/tc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-HK"},{"@type":"Organization","@id":"https:\/\/simcentric.com\/tc\/#organization","name":"Simcentric Solutions","url":"https:\/\/simcentric.com\/tc\/","logo":{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/simcentric.com\/tc\/#\/schema\/logo\/image\/","url":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2023\/06\/sim-logo-2023.png","contentUrl":"https:\/\/www.simcentric.com\/wp-content\/uploads\/2023\/06\/sim-logo-2023.png","width":800,"height":222,"caption":"Simcentric Solutions"},"image":{"@id":"https:\/\/simcentric.com\/tc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/simcentric.com\/tc\/#\/schema\/person\/0bfc8768eb7caacbfab4a0855d805626","name":"Debbie Ng","image":{"@type":"ImageObject","inLanguage":"zh-HK","@id":"https:\/\/secure.gravatar.com\/avatar\/9f3420f60d27329ed6e921ddaae5206353d0a7414d1abb6f1f0b32b4fd849965?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9f3420f60d27329ed6e921ddaae5206353d0a7414d1abb6f1f0b32b4fd849965?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9f3420f60d27329ed6e921ddaae5206353d0a7414d1abb6f1f0b32b4fd849965?s=96&d=mm&r=g","caption":"Debbie Ng"}}]}},"_links":{"self":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/15049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/comments?post=15049"}],"version-history":[{"count":2,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/15049\/revisions"}],"predecessor-version":[{"id":15051,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/posts\/15049\/revisions\/15051"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/media\/15045"}],"wp:attachment":[{"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/media?parent=15049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/categories?post=15049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.simcentric.com\/tc\/wp-json\/wp\/v2\/tags?post=15049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}