shell安裝腳本
使用的Windows的系統,而想在Windows電腦中進行直接shell的腳本,而不用再進行學習其它的腳本語言。下面是我跟大家分享的是如何在Windows下運行linux shell腳本,歡迎大家來閱讀學習。
在Windows下運行linux shell腳本的方法
工具/原料
Windows
git
方法/步驟
首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。
Ⅱ 環境搭建-CentOS 7上通過Shell腳本自動化安裝Harbor
最近在搭建 Kubernetes 1.14 版本,過程中涉及各種組件的安裝配置,所以打算通過腳本自動化的部署配置這些組件,本文主要描述在 CentOS 7上通過Shell腳本自動化安裝Harbor,上一篇是7月5號寫的,又偷懶了十多天。
環境搭建-CentOS 7上通過腳本自動化部署JDK 8
環境搭建-CentOS 7上通過Shell腳本自動化修改機器名並配置靜態IP
環境搭建-CentOS 7上通過Shell腳本自動化配置免密登錄
環境搭建-CentOS 7上通過Shell腳本自動化安裝Harbor
安裝 Harbor 的步驟在這里不做詳細列出,具體可參看筆者的這篇文章- 環境搭建-CentOS下安裝Harbor鏡像倉庫 ,本文和這篇文章的不同之處在於 Harbor 的版本,本文採用的是1.8.1,之前使用的是1.5.1,最大的不同是配置文件的不同,詳細可以參看 GitHub 中 release 介紹,配置文件由之前的 harbor.cfg 變更為 harbor.yml:
詳細的腳本如下:
Ⅲ 使用shell腳本實現批處理安裝apk
在智能終端的性能測試中,經常需要安裝大量的apk使用來測試設備的流暢性,如果使用手工安裝不免效果很低還特別枯燥
安裝apk命令:adb install testapk
如果是系統應用,adb insatll是無法直接安裝的,必須覆蓋安裝,adb insatll -r testapk
1)此處介紹在ubuntu環境下如果使用批處理快捷的安裝apk,執行此shell文件需要cd進入apk文件夾下
Ⅳ 在ubuntu中如何安裝shell 腳本程序
jdk源里有
腳本就chmod 755 XX
sudo ./XXX
ubuntu下最好不要用sh XX來運行腳本
ubuntu默認的system shell為dash,只有嚴格符合posix標準的腳本才能用sh XX來運行
否則用bash XX或./XXX比較好
Ⅳ 如何在Windows下運行linux shell腳本
1、首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。
2、並需要配置好git的bin,配置環境變數,把bin的絕對路徑復制到環境變數中path。
3、配置git的環境變數之後,在任意文件進行創建一個為mkdir.sh,文件名可以是隨意的結尾需要為.sh。
4、然後在sh的文件中進行輸入#!/bin/shtoucha.txtsleep10echo"testtesttesttest">>a.txt
創建一個為txt文件後testtesttesttest寫入到txt文件中。
5、然後進行雙擊.sh的文件,會彈出git的命令窗口,根據代碼的執行的時間窗口顯示多久。
6、然後就會自動生成一個a.txt的文件。
7、並會在a.txt文件中寫入為「testtesttesttest」的一段文字,即代表運行linuxshell腳本成功。
Ⅵ Centos7一鍵安裝jdk1.8 shell腳本
jdk-8u251-linux-x64.tar.gz
1、vi install_java.sh 腳本
2、將 install_java.sh 腳本與安裝tar包放在同一目錄下,運行此腳本進行自動化安裝
3、給腳本文件加執行許可權
4、運行腳本文件,進行安裝
Ⅶ 2、Mysql自動安裝8.0Shell腳本
如果您覺得文本對您有幫助,請打賞,謝謝。
新建執行腳本:mysql_install.sh,並添加執行許可權
#!/bin/bash
#zhouyihua V0.1 2021.07.08
#For centos 7.0 & 8.0
#v 0.2
# add DNS
echo "---------- Add DNS --------"
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
#stop firewall
systemctl stop firewalld
if [ $? -ne 0 ]; then
echo "Firewall stop failed"
else
echo "Firewall stop success"
fi
#download mysql yum source
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
#install mysql yum source
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
#enable 5.7
#sed -i '21s/enabled=0/enabled=1/g' /etc/yum.repos.d/mysql-community.repo
#sed -i '21s/enabled=0/enabled=1/g' /etc/yum.repos.d/mysql-community.repo
#disable 8.0
#sed -i '28s/enabled=1/enabled=0/g' /etc/yum.repos.d/mysql-community.repo
#install mysql
yum -y mole disable mysql
yum -y remove mariadb-libs
yum install -y mysql-community-server
#config mysql
echo "----------- Config my.cnf ----------"
sed -i '/\[mysqld\]/a\lower_case_table_names=1' /etc/my.cnf
sed -i '/\[mysqld\]/a\skip-grant-tables' /etc/my.cnf
#start mysql
echo "---------- Starting mysql service ----------"
systemctl start mysqld.service
mysql -uroot -p123456 << EOF
use mysql;
update user set authentication_string='' where user='root' ;
flush privileges;
ALTER user 'root'@'localhost' IDENTIFIED BY '?CZJh8JWxvH';
EOF
echo "---------- Annotation skip grant tables in my.cnf ----------"
sed -i 's/skip-grant-tables/\#skip-grant-tables/g' /etc/my.cnf
echo "---------- Restart mysql service ----------"
systemctl restart mysqld.service
echo "---------- Grant all privileges ----------"
mysql -uroot -p'Oracle1234!@#$' --connect-expired-password -e "alter user 'root'@'localhost' identified by 'Oracle1234!@#$';"
mysql -u root -p'Oracle1234!@#$' << EOF
use mysql;
CREATE USER 'maxkey'@'%' IDENTIFIED BY 'Oracle1234!@#$';
GRANT ALL ON *.* TO 'maxkey'@'%';
EOF
參考:
先設置grant_skip_tables
1. use mysql
2. update user set authentication_string='' where user='root' ; 如果這個欄位有值,先置為空
3. flush privileges 刷新許可權表
4.ALTER user 'root'@'localhost' IDENTIFIED BY 'Tianya1234' 修改root 密碼
參考:https://blog.csdn.net/qq_27820551/article/details/101488430
Ⅷ 用shell腳本怎麼實現安裝升級版本
A:本腳本運行的機器,Linux
B:待安裝JDK的機器, Linux
首先在腳本運行的機器A上確定可以ssh無密碼登錄到待安裝jdk的機器B上,然後就可以在A上運行本腳本:
復制代碼 代碼如下:
$ ./install-jdk.sh B的IP
or:
復制代碼 代碼如下:
$ ./install-jdk.sh "B的IP" "JDK的URI"
就可以在機器B上安裝JDK。jdk使用的tar包需要用戶自己設定DEFAULT_JDK_SRC=?,保證可以wget得到即可。下面是全部腳本內容:
復制代碼 代碼如下:
#!/bin/bash
#
# @file
# install-jdk.sh
#
# @date
# 2013-12-19
#
# @author
# cheungmine
#
# @version
# 0.0.1pre
#
# @usage:
# ./install-jdk.sh 192.168.122.206
#
################################################################################
. common.sh
#***********************************************************
# install_jdk
# install jdk on machine: /usr/local/lib
#
# Parameters:
# machine - root@ipaddr
# jdkUri - uri for fetching tarball
#
# Example:
#
# install_jdk [email protected] ftp://vm-ftp/pub/tarball/jdk-7u67-linux-x64.tar.gz
#
#***********************************************************
. common.sh
# YOU MIGHT CHANGE BELOW LINE TO GET YOUR JDK TARBALL:
DEFAULT_JDK_SRC="ftp://vm-ftp/pub/tarball/jdk-7u67-linux-x64.tar.gz"
# DO NOT CHANGE BELOW TWO LINES:
INSTALL_DIR="/usr/local/lib/java"
LOCAL_DIR="./.tmp"
function install_jdk() {
echo -e "<INFO> install jdk on machine: $1"
local DEST_LOGIN=$1
local JDK_URI=$2
local TAR=$(basename $JDK_URI)
echo -e "<INFO> jdk: '$JDK_URI'"
wget -c $JDK_URI -P $LOCAL_DIR -O $LOCAL_DIR/$TAR
$(is_empty_dir "$LOCAL_DIR/jdk_untar")
local ret=$?
case $ret in
$DIR_NOT_EXISTED)
mkdir -p $LOCAL_DIR/jdk_untar
;;
$DIR_IS_EMPTY)
;;
$DIR_NOT_EMPTY)
rm -rf $LOCAL_DIR/jdk_untar/*
;;
*)
exit $ERR_FATAL_ERROR
;;
esac
# untar to jdk_untar
tar -zxf $LOCAL_DIR/$TAR -C $LOCAL_DIR/jdk_untar
$(is_empty_dir "$LOCAL_DIR/jdk_untar")
local ret=$?
if [ "$ret" -eq "$DIR_NOT_EMPTY" ]; then
local jdk_home=`ls $LOCAL_DIR/jdk_untar 2>/dev/null`
echo $jdk_home
else
exit $ERR_FATAL_ERROR
fi
echo -e "<INFO> create folder on: $DEST_LOGIN:$INSTALL_DIR"
local ret=`ssh $DEST_LOGIN "mkdir $INSTALL_DIR"`
echo -e "<INFO> $jdk_home/ to: $DEST_LOGIN:$INSTALL_DIR/"
local ret=`scp -r $LOCAL_DIR/jdk_untar/$jdk_home $DEST_LOGIN:$INSTALL_DIR`
# remove local tar
rm -rf $LOCAL_DIR/jdk_untar
local DEST_JAVA_HOME=$INSTALL_DIR/$jdk_home
echo -e "<TODO> remove old settings for install_jdk in /etc/profile"
echo -e "<INFO> set /etc/profile: JAVA_HOME=$DEST_JAVA_HOME"
local ret=`ssh $DEST_LOGIN "echo '' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo '#!{{[email protected]==>' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo 'export JAVA_HOME=$DEST_JAVA_HOME' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo 'export CLASSPATH=.:\\$JAVA_HOME/lib/tools.jar:\\$JAVA_HOME/lib/dt.jar' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo 'export PATH=\\$JAVA_HOME/bin:\\$JAVA_HOME/jre/bin:\\$PATH' >> /etc/profile"`
local ret=`ssh $DEST_LOGIN "echo '#!<[email protected]}}'>> /etc/profile"`
local ret=`ssh $DEST_LOGIN ". /etc/profile"`
}
function uninstall_jdk() {
echo -e "<TODO> uninstall jdk from: $1"
}
#=======================================================================
# ---- main() ----
if [ -n $1 ]; then
DEST_IP=$1
JDK_SRC=$DEFAULT_JDK_SRC
if [ $# == 2 ]; then
JDK_SRC=$2
fi
echo -e "<INFO> install jdk on '$DEST_IP', jdk: '$JDK_SRC'"
install_jdk "root@$DEST_IP" "$JDK_SRC"
fi
Ⅸ 在Linux shell腳本中,安裝過程中如何實現自動選擇安裝選項
在Linux shell腳本中,安裝過程中如何實現自動選擇安裝選項?
Linux中shell腳本運行時經常需要進行交互,比如安裝軟體的過程中對license聲明的確認,需要輸入yes,回車之類的確認信息。這個在自動化安裝的時候就會是個問題。
通常對於這個問題比較靈活的解決方法就是TCL的Expect。但Expect還需要另外安裝,平台通用性不高,比較麻煩。
另外一些簡單的方法倒也是有,不過可用性不高,特別是對要求多次交互就吃力了。但怎麼說其還是能解決大多數的問題,因為復雜的情況還是比較少的。比 如要一個調用一個安裝腳本 : installWAS.sh, 這個腳本要求輸入回車,則可以:echo | installWAS.sh;如果要求輸入yes|no,加回車,則可以echo yes|installWAS.sh. 這下自動化安裝就有希望了。
再有一下的代碼也可以帶來一些思路:
[0 No.2015 huan@huan ~/tmp]$ cat foo read -s -n1 -p "Press any key to continue ... " echo "Your inputs: $REPLY"
[0 No.2016 huan@huan ~/tmp]$ ./foo < /dev/null Your inputs:
[0 No.2017 huan@huan ~/tmp]$
Ⅹ shell腳本 自動安裝問題
給你點思路:
對每個程序單獨使用函數來寫最後調用,如果在執行某個函數的時候中斷,可以單獨調用函數來執行
在安裝的同時來判斷程序(比如判斷上一條命令是否執行成功,或判斷程序安裝後的文件,或者埠是否存在)
在每塊程序安裝時使用shell在前一行打上便簽來注視說明
使用sh -x 腳本 來觀察腳本執行到那裡報錯,或中斷。
