三种方法给apt设置代理,在crontab中使用环境变量

By admin in 美高梅手机版4858 on 2019年4月16日

美高梅手机版4858 1
干什么设置代理,你驾驭。

在crontab中动用环境变量

版权评释:转发时请以超链接情势评释文章原来出处和小编新闻及本声明

因篇幅过长,故分为两节,上节最首要表明hadoop运营条件和必须的根底软件,包涵VMware虚拟机软件的证实安装、Xmanager5管理软件以及CentOS操作系统的安装和骨干互连网安顿。具体请参见:

有那个第1方工具得以用,比如proxychains,万分好用,但是今日这不是核心。因为有希望未有代理,上网你都做不到,更别提下载软件了。想1想艺术也许告诉你,免得你万一不能够不用:sudo apt install proxychains

 

GNU/Linux扶助各个本子的shell.
但暗中认可的是bash. /etc/shells文件列出了本机linux系统援救的shell类型.
/etc/passwd中列出了用户暗中同意的报到shell.

| 环境搭建:从零起初搭建hadoop大数据平台-上

经常有三种方法为apt设置代理,有了代办能上网之后,apt本事为您带来任何软件的扶植。
壹.设置环境变量,倘诺想为所有用户设置,能够编辑/etc/profile恐怕/etc/environment;假设只是近年来用户选用,能够设置~/.profile文件,要是运用的不是bash,可能要基于供给安装任何配置文件,具体看使用shell的辅助文件,比如fish是应用:~/.config/fish/config.fish。其它不一致的剧本设置环境变量的一声令下是见仁见智的,注意区分使用。
以bash为例,把下部那行脚本写入配置文件。记着把代理的用户名、密码替换来自个儿的,要是未有密码也能够把@此前的壹部分蕴含@都去掉:

环境:(产品,平台,机型,软件版本,等)AIX伍L

从脚下shell调换来另一种shell: 直接在命令行输入相应的shell程序名.如:
$ sh
sh-3.00$
唤醒符变了, 要退回来此前的bash, 可输入exit或选用C-d组合键.

陆. Linux节点布署

  设置主机名:听他们说布署修改主机名,实行hostnamectl set-hostname
hdoop1,修改主机名并写入配置文件,使用hostname查看当前收效的主机名。

美高梅手机版4858 2

  关闭防火墙:动用systemctl命令关闭防火墙,stop是这一次关闭,disable是下次开机也不会运转。那里我们供给利用disable通透到底关闭。

美高梅手机版4858 3

  停止selinux:行使getenforce命令能够查询selinux状态,使用setenforce命令设置情状0表示同意通过(即此番关闭selinux,下次开发银行还会苏醒,要想长久关闭,则需求选拔vim编辑配置文件,下图为getenforce和setenforce的利用)

美高梅手机版4858 4

    vim编辑器的轻巧使用验证:

    vim编辑器有两种状态:普通情势,编辑方式,命令格局

    普通格局按i键进入编辑情势,按esc键回普通形式

    普通形式进入命令情势,直接在平常情势下输入

    :q! :q

    :w :wq

    selinux的布署文件目录:etc/selinux/config

    输入指令:vim etc/selinux/config
就可以张开配置文件编写,按i键进入编辑情势,修改为如下结果。cat为翻动文件命令。

美高梅手机版4858 5

  利用VMware克隆其余多少个节点:选取节点1的虚拟机克隆出别的两台节点虚拟机,克隆成功后按设计修改主机名和IP地址。分别为hadoop二节点IP为1玖二.16八.一.20,hadoop三节点IP为1玖贰.16八.一.30,修章与前面一致。

美高梅手机版4858 6

美高梅手机版4858 7

美高梅手机版4858 8

  设置主机名和IP对应:各样节点都要安装,写法是如出1辙的,完毕之后方可一直ping主机名来测试是不是设置成功。输入vim
/etc/hosts张开配置文件编写,修改为如下结果。(多少个节点都以同一的秘诀)。

美高梅手机版4858 9

  设置ssh互信:ssh免密码登6要是不布署,在运行集群时候供给输入每一个节点的密码方可运转,为幸免频仍输入密码,可配备ssh免密码登六。上面以hadoop壹为例,首先生成密钥,然后将密钥传给其余节点,也要传给自个儿。(别的四个节点也要做,做法是一样的,如下所示)。

  首先,生成密钥:ssh-keygen

美高梅手机版4858 10

  然后将密钥传给任何节点,各个节点都要做,命令格式如下:

美高梅手机版4858 11

  用ssh测试一下是还是不是间接登录(下图是从节点一登录至节点二和节点三)

美高梅手机版4858 12

  目录建立:遵照规划为各样节点创立目录文件夹。

美高梅手机版4858 13

export HTTPS_PROXY=http://username:password@192.168.1.1:8080

  www.2cto.com  

bash的特色

柒. JDK安装配备

  拷贝JDK包至节点机:首先使用Xftp将JDK安装文件传输至Linux节点机,展开Xftp工具,配置会话,在Xftp工作区左边展开物理机须要上传软件钻探所在的目录,再在左侧张开节点机hadoop一的目标目录(/hadoop/soft),将文件由右边拖至左侧就可以。

美高梅手机版4858 14

美高梅手机版4858 15

  解压JDK: tar -zxvf
jdk-八u16壹-linux-x6四.tar.gz,解压完结后就可以看到石青的JDK文件夹

美高梅手机版4858 16

  编辑环境变量:安插root用户的环境变量,切换至家目录,使用vim
.bash_profile编辑环境变量。增多如下内容。

美高梅手机版4858 17

  验证:使用source .bash_profile重新加载环境变量,使用命令java
–version查看以后java的本子,看好糟糕打响实践,结果如下。

美高梅手机版4858 18

三种方法给apt设置代理,在crontab中使用环境变量。  此外节点安装:将节点hadoop一上的Java拷贝到其余两个节点上,然后分别登入至八个节点,按上边包车型大巴方法设置此外五个节点的环境变量。实现后再次加载环境变量,查看版本验证一下。

美高梅手机版4858 19

如若利用的是socks五代理,能够写成那样:

难题讲述:crontab中运维的shell脚本不可能正常运行,可是利用手动推行没至极,在$home/.profile中设定了剧本所须求的环境变量。


八. Hadoop设置配备

  将Hadoop软件包上传至节点1:应用Xftp将物理机上的hadoop-二.八.3.tar.gz传输至节点一上(/hadoop/soft)目录下。

美高梅手机版4858 20

  解压Hadoop:tar -zxvf hadoop-2.8.3.tar.gz

美高梅手机版4858 21

  进入Hadoop配置文件目录:正如图所示

美高梅手机版4858 22

  编辑Hadoop配置文件:亟待编写制定hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves。(小建议:可以用Xftp将这么些文件复制到windows系统上,用Notepad++修改保存,然后在复制到每一个节点相应的文件夹里覆盖原来的)。当然,也可在linux下用vim编辑这几个文件,只是相比困难。

  a. 设置hadoop-env.sh和yarn-env.sh中的java环境变量

美高梅手机版4858 23

  b.配置core-site.xml文件

<configuration><property><name>fs.defaultFS</name><value>hdfs://192.168.1.10:9000</value></property><property><name>hadoop,tmp.dir</name><value>/hadoop/tmp/</value></property></configuration>

  c.配置hdfs-site.xml文件

<configuration><property><name>dfs.namenode.http-address</name><value>192.168.1.10:50070</value></property><property><name>dfs.namenode.secondary.http-address</name><value>192.168.1.20:50090</value></property><property><name>dfs.namenode.name.dir</name><value>file:///hadoop/nn</value></property><property><name>dfs.datanode.data.dir</name><value>file:///hadoop/dn</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>file:///hadoop/secondarynn</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property></configuration>

  d.配置mapred-site.xml文件(由于私下认可未有mapred-site.xml文件,只有一个mapred-site.xml.template文件,能够将那个template文件重命名称为mapred-site.xml)

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>192.168.1.10:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>192.168.1.10:19888</value></property></configuration>

  e.配置yarn-site.xml文件

<configuration><!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.address</name><value>192.168.1.10:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>192.168.1.10:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>192.168.1.10:8031</value></property><property>

  f.配置slaves文件

  美高梅手机版4858 24

  编辑环境变量:配置root用户的环境变量,切换至家目录,使用vim
.bash_profile编辑环境变量。增加如下内容。

美高梅手机版4858 25

  验证:使用source .bash_profile重新加载环境变量,使用命令hadoop
version查看未来hadoop的本子,结果如下。

美高梅手机版4858 26

  其余节点安装:将节点hadoop一上早已配备好的hadoop拷贝到其余七个节点上,然后按上边的章程设置其余三个节点的环境变量。(使用vim
.bash_profile编辑环境变量),完毕后用上边查看版本的形式证飞鹤(Karicare)下。

美高梅手机版4858 27

export HTTPS_PROXY="socks5://192.168.1.1:8088"
#或者
export ALL_PROXY="socks5://192.168.1.1:8088"

 

一, 命令行参数: sh只好传送单字符参数(可通过松手的set命令配置),
bash还足以传递字符串参数.
二, 运维配置文件: bash运行时, 依次读取运行文件,
这样能够在bash运转时达成都部队分暗中认可的布局工作. (关于bash配置文件,
后边再研商).
3, bash是交互性shell.
4, 条件发挥式.
5, shell算术.
6, 别名.
7, 数组
8, 目录栈.
九, 受限版的bash: rbash.

9. Hadoop启动

  使用hdfs namenode
–format格式化hdfs文件系统,如下图。(仅在第三回开发银行之前供给格式化,前面运营不供给格式化,只需在节点一上实施)

美高梅手机版4858 28

  使用start-all.sh运营全部服务(只需在节点1上实践)

美高梅手机版4858 29

  运行成功可各自登录至每一个节点运维jps查看每种种节点上运营的进度,平常景况如下。

美高梅手机版4858 30

  在物理机上访问hdfs的web分界面,展开物理机浏览器,输入网站:

美高梅手机版4858 31

美高梅手机版4858 32

  同上,使用浏览器打开

美高梅手机版4858 33

贰.要是不想直接选取代理,只是不相同命令行程序有代理要求,能够选拔一时半刻的环境变量。方法是,建立二个剧本文件,比如叫proxy.sh,内容为:

解答:cron命令的默许shell是/usr/bin/bsh,假诺要在cron运行的台本中利用ksh,就亟须在剧本中的第3行增多“#!/usr/bin/ksh”的声明。

bash命令的举办

#!/bin/sh
HTTPS_PROXY=http://username:password@192.168.1.1:8080 $*

 


如此那般,今后供给运用代理推行有些命令的时候,用如下的样式:

比方cron进程运转的shell脚本要用登入时的环境变量,就亟须在cron运维的shell脚本中加多下边包车型地铁内容,能力够在起步的脚本中动用

bash能够分辨要奉行内容的种类:
是系统中的可实践程序, 依然bash的放权命令, 只怕是1个bash脚本?
依据那些品种, bash的试行格局有所区别:

proxy.sh curl https://www.google.com

$home/.profile文件中的环境变量。

①, 可推行程序: 遵守fork-exec格局, 它fork出三个子bash进度,
父bash和子bash仅经过号不相同. 注意那种地方下, 父进度等待子进度实施,
子bash实践完毕退出后, 父bash重新试行.
程序对子bash的条件做出的改动不会影响父bash.

那种艺术对于一些子进程未有持续父进度环境变量的情状,会有包容难点。不比proxychains好用。但是对于apt的测试是能够的。

 

二, bash内嵌命令: bash直接实施命令, 不新生成二个进度.

三.针对性apt举行安装,当然就只对apt有效了。其余常用软件git之类的,都有自身的章程,请自行检索相关安装。设置apt代理的艺术是:

. $home/.profile

叁, bash脚本: 分两种状态:
(一) 假使直接实施脚本, 比如: $ ./foo.sh , 此意况与执行可实行程序一样,
生成的子bash进度二遍从剧本读取1行命令来推行, 仿佛用户从键盘输入命令. 

sudo su
vi /etc/apt/apt.conf.d/10proxy   #这个文件正常不存在,会新建一个
#编辑内容为:
Acquire::http::Proxy "http://user:pwd@192.168.1.1:8080";

 

(二) 假设实践 $ source ./foo.sh, 这一定于实行bash的内嵌命令,
也足以起到实践脚本命令的效劳, 但不生成新的bash.
所以假若急需在本子中改换bash环境变量的话, 要用source命令!
直接运转脚本只好改成fork出的子bash的环境变量, 运维甘休后, 子bash退出,
父bash的环境变量不受影响.

继之施行apt的其余操作,都将选取这一个代理了。

那是因为cron进度实践的shell脚本是不会自行加载用户目录下的.profile文件,所以需求剧本自个儿加载所供给的环境变量。

编写bash脚本

参考文献:

================


环境变量文件加载顺序

壹,
推荐应用能够显示bash语法高亮的编辑器, 比如emacs, gedit, vim…

/etc/profile:
此文件为系统的各种用户安装环境消息,当用户率先次登入时,该公文被推行.

二, 本身编辑的本子怎么样命名, 放在什么地点?
命名: 为了幸免自个儿写的本子与系统命令重名, 提议shell脚本以.sh结尾.
但本身写的台本依然恐怕与系统自带的台本重名, 提出命名前透过$ which
scriptname.sh (或许whereis, locate)来查看.

并从/etc/profile.d目录的布置文件中募集shell的设置.
 

职位: 能够将本身写的台本放在三个正好的目录中, 比如~/script. 

/etc/bashrc: 为每一个运维bash shell的用户试行此文件.当bash
shell被展开时,该文件被读取.

Unix/Linux不利用文件扩展名来判断文件类型. 要想知道文件类型, 可使用file命令.

 

3, 怎么样进行脚本?
(一) 脚本能够像命令同样被试行:
$ /bin/bash file.sh (不需求file.sh的可试行权限)

~/.bash_profile:
每种用户都可利用该公文输入专用于本身行使的shell音讯,当用户登入时,该公文仅仅实践二遍!暗中同意景况下,他设置有个别环境变量,实施用户的.bashrc文件.
 

1经你懒得输入/bin/bash, 能够动用上面包车型大巴三种格局:
假使脚本被集中停放在~/script目录, 能够将该目录增多到PATH中再一向调用
$ export PATH=”$PATH:~/script”
是因为脚本所在的目录在PATH环境变量中, 所以可一向运维: $
file.sh (须求file.sh有可实行权限)

~/.bashrc: 该文件包涵专用于您的bash
shell的bash新闻,当登入时以及历次打开新的shell时,该文件被读取.

要是想实产业前目录的台本, 能够运营$ ./scriptname.sh 
(须求file.sh有可举办权限)
艺术(一)使bash新生成2个子bash来施行, 在此情景下,
脚本对环境变量的退换只对子bash有效.并且在进行脚本文件在此以前务必改造权限(指明shell路线时毫无),
让脚本具备相应的实行权限.
 
(贰) 可接纳source命令来直接施行脚本(可用’.’来代替source).
它与地方的章程有两点分别:
一, 脚本文件不供给实行权限.
二,
就在时下bash中试行, bash不会新fork二个子bash来实行它, 所以脚本对环境变量的退换会潜移默化到当下bash.

~/.bash_logout: 当每便退出系统(退出bash shell)时,实践该文件. 

推荐使用./file.sh在当前目录执行脚本, 这样可以避免误调系统其他位置的重名脚本. 如果需要更改当前shell的环境变量, 则使用source命令. 不推荐修改环境变量: 这会造成系统的安全隐患.

 

当你料定脚本运营无误, 而且要求常常进行它时,
可将它copy到适当的系统进行目录, 比如/usr/bin, /usr/local/bin
可能~/bin(需修改PATH)中. 然后向调用命令同样进行它.

其它,/etc/profile中设定的变量(全局)的能够作用于别的用户,而~/.bashrc等中设定的变量(局地)只好承袭/etc/profile中的变量,他们是”老爹和儿子”关系.

本子结构

 


~/.bash_profile 是交互式、login 方式进入 bash 运转的

剧本早先第二行钦定运营脚本的shell,
一般钦定为bash:
#!/bin/bash

~/.bashrc 是交互式 non-login 格局进入 bash 运转的

bash脚本中的注释以’#’开头, #之后到行尾的内容为注释, 在执行时会被bash忽略. (脚本中不能再在同一行的注释之后添加命令, #之后到行尾的内容都会被bash忽略!)  但脚本开头的#!是个例外!

普通二者设置大约一样,所以1般前者会调用后者。

在本子结尾的末段一行, 一般包括三个 “exit 0” 语句(0代表实行成功).
它回到三个值. 注意: 在交互式bash中, 那条命令没什么用处.
当它所在的本子被被的本子调用时, 就能分明被调用的剧本是不是正确奉行了.
你的台本在以后大概被其余脚本所调用, 所以最佳在剧本末尾包涵那条语句.
那也是编辑可接纳脚本的3个好习惯.

 

调剂脚本

环境:(产品,平台,机型,软件版本,等)AIX5L www.二cto.com
难点讲述:crontab中运维的shell脚本无法不荒谬运转,可是使用手动执…


调剂整个脚本

最通用的不贰秘技是新调用三个bash, 以调节和测试选项”-x”来进行脚本: $ bash -x
scriptname.sh
那种处境下, 新bash在展现每一种语句生成的结果此前打字与印刷出该语句(以+初步),
那样轻易我们相比语句和实行结果.

调整脚本的壹些剧情

只需在剧本中您想调节和测试的语句此前增进: set -x, 然后在结尾加多: set +x.
能够把那两条语句当作”调节和测试按键”, 在本子中再三调用.

调剂选项归结如下:
Short notation    Long notation    Result
set -f         set -o noglob    Disable file name generation using
metacharacters (globbing).
set -v         set -o verbose    Prints shell input lines as they
are read.
set -x         set -o xtrace    Print command traces before
executing command.

在意, -为张开启用调节和测试,+为关门调节和测试,这便于混淆.

这么些选取不光可以拉长到剧本文件中, 还足以一贯在指令行中内定. 
e.g:
$ set -x
$ ls
看望结果吧 :)

bash环境


启航配置文件的读取

率先要明了: 交互式bash和非交互式bash(interactive& non-interactive)

交互式shell: 用户输入指令给shell实施,
shell将推行的结果通过输出反馈给用户. 

非交互式shell: 命令(脚本)在后台实践, 推行进程中不读取用户输入,
也不报告实行新闻.(施行达成后可能会来得一些音讯).

如何判断某个shell是不是交互式的呢? 可以运行 $ echo &-, 若输出中还有小写字母’i’, 则是交互式shell. 一般而言, terminal或console都是交互式shell, 而shell脚本在执行时执行它的shell就是非交互式的.

交互式bash还有三种调用格局: login和non-login. 

login: 我们在文书情势下登入console时, bash提醒输入用户名和密码,
此时的bash正是login的.

美高梅手机版4858,non-login: 在图纸情势下, 张开四个 terminal, 不要求输入用户明或密码,
此时调用的bash正是non-login的.

据说login和non-login的区分, bash在运转时读取分化的配置文件:

login:
一, 读取/etc/profile: 它是独具用户, 全体shell的起步配置文件.
/etc/profile还会读取/etc/bash.bashrc, 它是兼备用户的bash运营配置文件.

2, 读取~/.bash_profile, 若它不设有, 则读取~/.bash_login 一样,
若前两者不存在, 读取~/.profile. 

3, 在logout时读取~/.bash_logout

non-login:
读取~/.bashrc.

可以自行在上述的配置文件的末尾添加echo语句, 这样在console中登录或者打开一个终端时就能显示配置文件的读取信息. 上面的总结基于Ubuntu, 各发行版可能情况不同.

non-interactive:
读取的公文由BASH_ENV定义. 那一个文件要用全路线,
因为不能用PATH变量来寻找这一个文件.

bash的起头化文件


壹,
针对任何系统全数用户的login配置文件.

壹, 针对任何连串的兼具用户, 全体shell的布置文件  /etc/profile
# System wide environment and startup programs, for login setup

留神: 该配置文件被交互式login shell读取, 以bash为例,
在图纸格局下开采terminal时是交互式non-login的, 所以不会读取/etc/profile:
运转 $ bash, 不会读取/etc/profile. 但倘使以 $bash –login, 则会读取.

在字符分界面下, 最初登入时会读取/etc/profile.
登6后的气象一样图形分界面包车型大巴terminal.

2, 针对全体类别具备用户, bash的安排文件 /etc/bash.bashrc
它壹般会被/etc/profile读取以安插bash环境. 

2, 针对单个用户的login配置文件
这么些配置文件默许位于用户的home目录, 以.开始, 是隐藏文件. 假如它们不设有,
可以创设它们.

1, ~/.bash_profile
This is the preferred configuration file for configuring user
environments individually. In this file, users can add extra
configuration options or change default settings.

与/etc/profile相同, ~/.bash_profile在交互式, login情况下被读取.
如果~/.bash_profile不存在, 则读取~/.bash_login,
若~/.bash_login也不存在, 则读取~/.profile.

3, 针对单个用户的login-out配置文件
在logout时候, bash读取~/.bash_logout文件.

四, 针对单个用户的non-login配置文件
~/.bashrc
在图片方式下, non-login bash更为宽泛地存在:
张开贰个terminal壹般不会读取/etc/profile或~/.bash_profile文件,
因为图形形式下开垦终端时是non-login的. 那种景观下通过~/.bashrc来配置.
~/.bashrc是不是会被读取的状态同样于/etc/profile和~/.bash_profile.

这样, 我们就知道在定制bash环境时, 如何针对自己的需要修改这些配置文件了:

login情形下, 针对所有用户的定制: /etc/bash.bashrc;  针对单个单个用户的定制: 修改~/.bash_profile

non-login情形下: 针对所有用户的定制: /etc/bash.bashrc; 针对单个用户的定制:  修改~/.bashrc

注意: /etc/bash.bashrc会被login或non-login的bash读取!

对那出布局文件实行改换后, 能够重登6, 恐怕新开二个bash,
大概使用source命令来使它们生效.

有时候可能记不清到底是哪些配置文件被读取, 可在上述的文件末尾添加一条echo语句, 显示它是否被调用. 然后打开一个terminal或者进入console看看, 就知道哪些配置文件被调用, 以及它们的调用顺序.

初稿引自:http://lnote.blogbus.com/logs/10075261.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有