shell修改配置文件|如何在shell脚本中修改添加替换指定文件中的内容

Ⅰ linux添加、修改、删除jar包内文件

项目现场使用堡垒机等安全措施时,有时不能用FTP方式访问Linux系统。如果此时需要修改配置文件,或增删jar包内文件,只能通过Shell命令行进行操作。 首先需要Linux系统中装有vim和zip程序,使用 vim xxx.jar 打开jar包:首先建一个目录,将jar包内的文件解压到目录中: 下面是分解动作~ 然后,你得到了一个目录。自行处理好需要添加、删除的文件后,在目录中执行: 最后你就得到了一个崭新的jar包( ̄▽ ̄)/~

Ⅱ shell脚本修改配置文件中内容,实现自动每次加1。求指导,不胜感谢!

#!/bin/bashNUM=$(grep-oP'(?<=hello-)(d+)'$1)sed-i"s/$NUM/$((NUM+1))/"$1

Ⅲ 在编写shell脚本时,用什么命令来修改配置文件,求解。越详细越好,谢啦!

完全脚本修改不现实啊!一般的做法是提前定义好配置文件的内容,替换掉默认内的,容然后使用sed -i ‘s/1/2/g’修改里面的ip,打个比方说,nginx的配置文件,我所有的配置文件都一样,然后用sed改掉里面的域名和ip,和网页根目录。

Ⅳ 如何在shell脚本中修改添加替换指定文件中的内容

1、启动Linux系统,用ssh工具连上Linux系统。

注意事项:

shell脚本在计算机科学中,是指“为使用者提供操作界面”的软件(命令解析器)。类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

Ⅳ shell 脚本编写修改文件

修改脚本中的对应变量可以实现替换内容的修改,具体实现如下:



#!/usr/bin/env bashPASS_MAX_DAYS=90PASS_MIN_DAYS=2PASS_MIN_LEN=8PASS_WARN_AGE=7login_path="/etc/login.defs"pwquality_path="/etc/security/pwquality.conf"if [ -f $login_path ]; thensed -i -E "s/(^PASS_MAX_DAYS.)[0-9]+/1$PASS_MAX_DAYS/g" $login_pathsed -i -E "s/(^PASS_MIN_DAYS.)[0-9]+/1$PASS_MIN_DAYS/g" $login_pathsed -i -E "s/(^PASS_MIN_LEN.)[0-9]+/1$PASS_MIN_LEN/g" $login_pathsed -i -E "s/(^PASS_WARN_AGE.)[0-9]+/1$PASS_WARN_AGE/g" $login_pathecho "完成$login_path文件的替换"elseecho "$login_path 文件不存在,请检查配置"fiif [ -f $pwquality_path ]; thenecho password requisite pam_cracklib.so minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 >>$pwquality_pathecho account required /lib/securtiy/pam tally.so deny=5 no_magic_root reset >>$pwquality_pathecho "对$pwquality_path完成追加"elseecho "$pwquality_path 文件不存在,请检查配置"fi

Ⅵ 两台服务器手动部署大数据平台

两台服务器手动部署大数据平台 ##### 初始服务器数量 – 2台centos7 ##### 建议配置 – 32G(RAM) – 24cpu – 10t(SATA) ### 1.环境 – 系统centos7 – jdk:1.8.0_171(64位) – zookeeper:3.4.8 – spark-2.1.0-bin-hadoop2.6 – kafka_2.10-0.10.2.1 – hadoop-2.7.0 – hbase-1.2.6 – elasticsearch-6.3.0 ### 2.系统准备 对应的安装包文件: elasticsearch-6.3.0.tar.gz hadoop-2.7.0.tar.gz hbase-1.2.6-bin.tar.gz jdk-8u171-linux-x64.tar.gz kafka_2.10-0.10.2.1.tgz mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar spark2.1.0hadoop2.6.tgz.gz zookeeper-3.4.8.tar.gz 一、 配置好hosts “` 两台设备的host ip1 hello1 ip2 hello2 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 二、机器之间做好免密 1. 在hello1服务器中,cd /root/ 2. ssh-keygen -trsa  (全部按回车,走默认配置) 3. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 4. chmod 600 ~/.ssh/authorized_keys 5. scp ~/.ssh/authorized_keys root@hello2:~/.ssh/ 到此处时可以实现hello1机器上通过root账户登录到hello2中,但从hello2中无法通过免密码登录到hello1服务器。 6. 在hello2服务器中,cd /root/ 7. ssh-keygen -trsa  (全部按回车,走默认配置) 8. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 9. scp ~/.ssh/authorized_keys root@hello1:~/.ssh/ 到此处时可以实现hello1机器与hello2机器之间免密码互通 三、建立一个用户操作elasticsearch用户,后期所有安装软件放在该目录下(当前使用root账户安装) 1.添加用户: useradd -m -s /bin/bash es 2.为该用户设置密码: password es 四、安装JDK 如果系统自带openjdk,先将其卸载掉! 1.创建jdk安装路径(hello1、hello2都执行) 执行: mkdir /usr/java 2.解压缩jdk到安装目录 执行: tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/ 3.添加环境变量 vi /etc/profile,添加以下语句 export JAVA_HOME=/usr/java/jdk1.8.0_171 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 执行:source /etc/profile 4.复制安装包和数据目录到hello2 scp  -r /usr/java/jdk1.8.0_171 hello2:/usr/java/ scp /etc/profile hello2:/etc/ 登录到hello2上,进入/home/es目录 执行: source /etc/profile 5、验证: 两台服务器上分别执行: java -version,查看输出的版本是否与安装的版本一致。 五、安装mysql 1.如果centos系统中自带mariadb,先卸载mariadb。 2.解压mysql安装包程序 执行:tar -xvf  mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar 3.依次安装里面rpm包组建 rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-5.7.23-1.el7.x86_64.rpm 4.启动MySQL 执行: systemctl start mysqld 5.登录mysql服务器 这种方式安装好后,会再my.cnf文件中自动生成一个密码, 执行:cat /var/log/mysqld.log | grep password, 出现如下记录: 2017-09-15T01:58:11.863301Z 1 [Note] A temporary password is generated for root@localhost: m-NdrSG4ipuO 其中“m-NdrSG4ipuO”为mysql root账户的初始密码。 登录: 执行: mysql -uroot -p 输入密码: m-NdrSG4ipuO,即可进入mysql服务器。 后续可自行修改root密码,创建新账户等操作。 六、安装zookeeper 1.解压zookeeper安装包到指定目录(/home/es) tar -zxvf zookeeper-3.4.8.tar.gz -C /home/es 2.创建程序软连接 cd /home/es/ ln -s zookeeper-3.4.8 zookeeper 3.添加执行路径环境 vi /etc/profile 添加 export ZOOKEEPER_HOME=/home/es/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin 执行 source /etc/profile 4.修改配置文件 cd /home/es/zookeeper cp conf/zoo_sample.cfg conf/zoo.cfg 在/home/data下创建对应的zookeeper数据存储目录 mkdir /home/data/zookeeper mkdir /home/data/zookeeper/data mkdir /home/data/zookeeper/log 修改配置文件:conf/zoo.cfg,添加以下语句 dataDir=/home/data/zookeeper/data dataLogDir=/home/data/zookeeper/log server.1=hello1:2888:3888 server.2=hello2:2888:3888 5.创建server表示符文件 touch /home/data/zookeeper/data/myid echo echo 1>/home/data/zookeeper/data/myid 6.复制安装包和数据目录到hello2 scp -r /home/es/zookeeper-3.4.8 es@hello2:/home/es scp -r /home/data/zookeeper es@hello2:/home/data scp  /etc/profile es@hello2:/etc 登录到hello2上 cd /home/es ln -s zookeeper-3.4.8 zookeeper echo echo 2>/home/data/zookeeper/data/myid 执行 source /etc/profile 7.两台机器上分别执行 zkServer.sh start 8.验证 jps | grep QuorumPeerMain,查看是否有该进程 zkServer.sh status,查看服务状态 六、安装kafka 1.解压kafka安装包到指定目录(/home/es) tar -zxvf kafka_2.10-0.10.2.1.tgz -C /home/es 2.创建程序软连接 cd /home/es/ ln -s kafka_2.10-0.10.2.1 kafka 3.修改配置文件 备份: cp config/server.properties config/server.properties.bak 创建kafka日志目录: mkdir /home/data/kafka mkdir /home/data/kafka/kafka-logs 修改:config/server.properties,具体对应字段如下: broker.id=0 delete.topic.enable=true num.network.threads=10 num.io.threads=32 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/home/data/kafka/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=hello1:2181,hello2:2181 zookeeper.connection.timeout.ms=6000 6.复制安装包和数据目录到hello2 scp -r /home/es/kafka_2.10-0.10.2.1 es@hello2:/home/es scp -r /home/data/kafka es@hello2:/home/data 修改hello2中的配置 登录到hello2上,cd /home/es/kafka,修改config/server.properties中broker.id值为2. 7.启动kafka 在两台机器的/home/es/kafka中,创建一个日志存放目录:mkdir start_log,执行以下命令: nohup bin/kafka-server-start.sh config/server.properties > start_log/kafka_start_log 2>&1 & 8.验证运行情况 jps | grep Kafka,查看进程 通过kafka命令查看topic。 七、安装hadoop 1.解压hadoop安装包到指定目录(/home/es) tar -zxvf hadoop-2.7.0.tar.gz -C /home/es 2.创建程序软连接 cd /home/es/ ln -s hadoop-2.7.0 hadoop 3.创建数据存放目录 mkdir /home/data/hadoop mkdir /home/data/hadoop/tmp mkdir /home/data/hadoop/dfs mkdir /home/data/hadoop/dfs/data mkdir /home/data/hadoop/dfs/name 4.修改配置文件 修改/home/es/hadoop/etc/hadoop/core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hello1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/data/hadoop/tmp</value> </property> <property> <name>io.file.buffer.size</name> <value>131702</value> </property> </configuration> 修改/home/es/hadoop/etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/data/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/data/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hello1:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration> 修改/home/es/hadoop/etc/hadoop/mapred-site.xml <configuration> <property> <name>maprece.framework.name</name> <value>yarn</value> </property> <property> <name>maprece.jobhistory.address</name> <value>hello1:10020</value> </property> <property> <name>maprece.jobhistory.webapp.address</name> <value>hello1:19888</value> </property> </configuration> 修改/home/es/hadoop/etc/hadoop/yarn-site.xml <configuration> <!– Site specific YARN configuration properties –> <property> <name>yarn.nodemanager.aux-services</name> <value>maprece_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.maprece.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>hello1:8032</value> </property> <property> <name>yarn.resourcemanager.scheler.address</name> <value>hello1:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hello1:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>hello1:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>hello1:8088</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>768</value> </property> </configuration> 配置/home/es/hadoop/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME(不设置的话,启动不了) export JAVA_HOME=/usr/java/jdk1.8.0_171 配置/home/es/hadoop/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点, hello1 hello2 5、将配置好的Hadoop复制到各个节点对应位置上,通过scp传送 scp  -r /home/es/hadoop-2.7.0 hello2:/home/es/ scp  -r /home/data/hadoop hello2:/home/data/ 登录到hello2上,进入/home/es目录 执行: ln -s hadoop-2.7.0 hadoop 6、格式化nameNode及启动hadoop 在主服务器启动hadoop,从节点会自动启动,进入/home/es/hadoop目录 初始化,输入命令,bin/hdfs namenode -format 全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh 输入命令,jps,可以看到相关信息 7、验证hadoop运行情况 浏览器打开http://hello1:8088/ 浏览器打开http://hello1:50070/ 8、添加hadoop环境变量到/etc/profile export HADOOP_HOME=/home/es/hadoop export PATH=$PATH:$HADOOP_HOME/sbin export PATH=$PATH:$HADOOP_HOME/bin export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" 执行: source /etc/profile 八、安装Hbase 1.解压hbase安装包到指定目录(/home/es) tar -zxvf hbase-1.2.6-bin.tar.gz -C /home/es 2.创建程序软连接 cd /home/es/ ln -s hbase-1.2.6 hbase 3.添加hbase环境变量到/etc/profile export  HBASE_HOME=/home/es/hbase export  PATH=$HBASE_HOME/bin:$PATH 执行:source /etc/profile 4.修改HBASE配置文件 vi /home/es/hbase/conf/hbase-env.sh 增加: export JAVA_HOME=/usr/java/jdk1.8.0_171 修改: export HBASE_MANAGES_ZK=false vi /home/es/hbase/conf/hbase-site.xml 修改类容: <configuration> <property> <name>hbase.rootdir</name> <!– hbase存放数据目录 –> <value>hdfs://hello1:9000/hbase/hbase_db</value> <!– 端口要和Hadoop的fs.defaultFS端口一致–> </property> <property> <name>hbase.cluster.distributed</name> <!– 是否分布式部署 –> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <!– list of  zookooper –> <value>hello1,hello2</value> </property> <property><!–zookooper配置、日志等的存储位置 –> <name>hbase.zookeeper.property.dataDir</name> <value>/home/es/hbase/zookeeper</value> </property> </configuration> 配置regionservers,vi /home/es/hbase/conf/regionservers 去掉默认的localhost,加入hello1、hello2 5、将配置好的hbase复制到各个节点对应位置上,通过scp传送 scp  -r /home/es/hbase-1.2.6 hello2:/home/es/ scp /etc/profile hello2:/etc/ 登录到hello2上,进入/home/es目录 执行: ln -s hbase-1.2.6 hbase source /etc/profile 6、hbase的启动 hello1中执行: start-hbase.sh 7、验证hbase运行情况 输入jps命令查看进程是否启动成功,若 hello1上出现HMaster、HRegionServer、HQuormPeer,hello2上出现HRegionServer、HQuorumPeer,就是启动成功了。 输入hbase shell 命令 进入hbase命令模式,输入status命令,查看运行状态。 在浏览器中输入http://hello1:16010就可以在界面上看到hbase的配置 注意事项: 正常安装后,创建普通不带压缩表可以正常读写,当使用snappy进行压缩创建表时,该表无法再regionServer中启动! 解决方法: 1.在hbase-site.xml文件中添加一下属性 <property>                 <name>hbase.regionserver.codecs</name>                 <value>snappy</value>         </property> 2.每台机器中将hadoop_native.zip解压缩到hbase安装目录的lib下,执行 unzip hadoop_native.zip $HBASE_HOME/lib/ 3.在$HBASE_HOME/conf/hbase-env.sh 中添加:export HBASE_LIBRARY_PATH=/home/es/hbase/lib/native 4.重启Hbase服务即可 九、Spark安装 1.解压hbase安装包到指定目录(/home/es) tar -zxvf spark2.1.0hadoop2.6.tgz.gz -C /home/es 2.创建程序软连接 cd /home/es/ ln -s spark2.1.0hadoop2.6 spark 3.修改配置文件 mv /home/es/spark/conf/spark-env.sh.template  /home/es/spark/conf/spark-env.sh vi /home/es/spark/conf/spark-env.sh 修改对应配置: export JAVA_HOME=/usr/java/jdk1.8.0_171 export SPARK_MASTER_IP=hello1 export SPARK_MASTER_PORT=7077 export SPARK_LOCAL_IP=hello1 修改slaves文件 mv /home/es/spark/conf/slaves.template  /home/es/spark/conf/slaves vi /home/es/spark/conf/slaves 将localhost修改成: hello1 hello2 5、将配置好的hbase复制到各个节点对应位置上,通过scp传送 scp  -r /home/es/spark2.1.0hadoop2.6 hello2:/home/es/ 登录到hello2上,进入/home/es目录 执行: ln -s spark2.1.0hadoop2.6 spark 在hello2中修改/home/es/spark/conf/spark-env.sh export JAVA_HOME=/usr/java/jdk1.8.0_171 export SPARK_MASTER_IP=hello1 export SPARK_MASTER_PORT=7077 export SPARK_LOCAL_IP=hello2 6、启动spark cd /home/es/spark 执行: sbin/start-all.sh 7、检测执行结果 jps | grep Worker,看是否有相应的进程。 十、安装elasticsearch 由于elasticsearch,用root账户无法启动,故该组件用es账户安装 1、切换到es账户: su es 2、解压hbase安装包到指定目录(/home/es) tar -zxvf elasticsearch-6.3.0.tar.gz -C /home/es/ 创建程序软连接 cd /home/es/ ln -s elasticsearch-6.3.0 elasticsearch 3、修改配置文件 vi /home/es/elasticsearch/config/elasticsearch.yml # 集群的名字  cluster.name: crrc-health # 节点名字  node.name: node-1  # 数据存储目录(多个路径用逗号分隔)  path.data: /home/data1/elasticsearch/data # 日志目录  path.logs: /home/data1/elasticsearch/logs #本机的ip地址 network.host: hello1  #设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点 discovery.zen.ping.unicast.hosts: ["hello1", "hello2"] # 设置节点间交互的tcp端口(集群),(默认9300)  transport.tcp.port: 9300 # 监听端口(默认)  http.port: 9200 # 增加参数,使head插件可以访问es  http.cors.enabled: true http.cors.allow-origin: "*" 4、创建elasticsearch数据和存储目录 mkdir /home/data1/elasticsearch mkdir /home/data1/elasticsearch/data mkdir /home/data1/elasticsearch/logs 5、修改linux系统的默认硬限制参数 切换至root用户: su root vim /etc/security/limits.conf 添加: es soft nofile 65536 es hard nofile 65536 退出es登录,重新用es账户登录,使用命令:ulimit -Hn查看硬限制参数。 vi /etc/sysctl.conf 添加: vm.max_map_count=655360 执行: sysctl -p 6、将配置好的elasticsearch复制到各个节点对应位置上,通过scp传送 scp  -r /home/es/elasticsearch-6.3.0 hello2:/home/es/ scp  -r /home/data1/elasticsearch hello2:/home/data1/ 登录到hello2上,进入/home/es目录 执行: ln -s elasticsearch-6.3.0 elasticsearch-6.3.0 在hello2中修改/home/es/elasticsearch/config/elasticsearch.yml 修改: network.host: hello2 7、启动elasticsearch 使用es账户 执行: /home/es/elasticsearch/bin/elasticsearch -d 8、验证 控制台中输入:curl http://hello1:9200


赞 (0)