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 脚本 来观察脚本执行到那里报错,或中断。
