原因是linux下的檔案,在windows下面編輯過。在win下編輯的時候,換行結尾是\n\r , 而在linux下 是\n
解決方法,將檔案裡面的內容做替換即可
sed -i 's/\r$//' build.sh
#!/bin/bash
#ssh免密登入shell指令碼
#配置免密登入的所有機子都要執行該指令碼
#修改/etc/ssh/sshd_config配置檔案
#sed -i 's/被替換的內容/替換成的內容/' /配置檔案位址
#sed -i 's/#pubkeyauthentication yes/pubkeyauthentication yes/' /etc/ssh/sshd_config
#cat >> /etc/ssh/sshd_config <>>>>" $line "<<<<<<<"
ssh $line $cmd_str < /dev/null > /dev/null
if [ $? -eq 0 ] ; then
echo "$cmd_str done!"
else
echo "error: " $?
fifi
done < $serverlist_file
使用方法:
1. 新建乙個檔案host_file_list,檔案中為伺服器的位址,每個一行;
2. 儲存上面shell 指令碼, 如儲存為 allcmd.sh,注意使用 chmod +x allcmd.sh 使之成為可執行指令碼;
3. 執行 allcmd.sh host_file_list md 即可, host_file_list 是第1步的檔名(記得和 allcmd.sh 放在相同目錄下), cmd 就是要執行的命令,用單引號包起來,例如:刪除/home/nuaazdh/下面的乙個 tmp.txt 檔案: allcmd.sh host_file_list 'rm /home/nuaazdh/tmp.txt'
4. done!
Redis集群軟體部署指令碼
shell指令碼中所執行的命令需要手動回車時,可在命令後加 處理 例如 對於指令碼中初始化redis服務的命令需要手動回車,可在指令碼中做如下處理 echo root redis 4.0.8 utils install server.sh bin bash 2019.12.17 zz sun 定義變...
一鍵部署ETCD集群指令碼
bin bash set x set e 更改這裡的ip,只支援部署3個節點etcd集群 033 32m 部署完畢!執行 etcdctl cluster health,檢測是否ok。033 0m 1 準備三颱機器,系統為centos7 yum install y epel release vim b...
Kafka集群安裝部署與啟動指令碼
hadoop102 hadoop103 hadoop104 zkzk zkkafka kafka kafka 1 解壓安裝包 atguigu hadoop102 software tar zxvf kafka 2.11 2.4.1.tgz c opt module 2 修改解壓後的檔案名稱 atgu...