作者: 铁锚

日期: 2013年12月23日

1. 安装 webmin

# 安装 webmin
cd /usr/local/ieternal/
mkdir download
cd download

wget http://downloads.sourceforge.net/project/webadmin/webmin/1.660/webmin-1.660-1.noarch.rpm?r=http%3A%2F%2Fwww.webmin.cn%2F&ts=1387801624&use_mirror=jaist

rpm -U webmin-1.660-1.noarch.rpm 

# 此时,可以通过: http://115.28.9.136:10000/ 进行访问,用户名,密码是root的.

# 如果要修改语言,请登录以后,选择

# Webmin --> Change Language and Theme,然后在右边进行选择,可以选择SImplexxx中文.然后保存,刷新即可.

2. SSH Tunnel端口转发,端口代理

##############################################
#### SSH Tunnel; 经测试,已经打通
##############################################
# 公网服务器外网IP: 115.28.9.136
# 公网服务器内网IP: 10.144.7.195
# 内网服务器内网IP: 10.144.7.191

### 1 先登录 115.28.9.136

ssh root@115.28.9.136 -p 22

#通过 webmin 修改 ssh配置,并应用变更
# 实质是 /etc/ssh/sshd_config 文件
GatewayPorts yes

### 2 在 136 上登录 10.144.7.191

ssh root@10.144.7.191 -p 22

### 3 在 10.144.7.191 上执行:
# 即通过此SSH后台登陆 195机器,监听了 195:19122端口,
# 此时访问 136:19122 的请求,相当于都转发到本地的22端口了。
# -Nf 是后台命令的意思
ssh -Nf 10.144.7.195 -R 19122:10.144.7.191:22

# 此时,客户端通过 115.28.9.136:19122 登录,实际上登陆的就是 10.144.7.191:22 服务器了。

3. 安装squid代理

##### 1. 安装squid
yum -y remove squid
yum -y install squid

##### 2. 修改配置文件
#搜索”http_access deny all”改为”http_access allow all”
# ESC, /http_access 可以进行搜索
vim /etc/squid/squid.conf

# 执行以下修改

#http_access deny CONNECT !SSL_ports
http_access allow CONNECT !SSL_ports

#http_access deny all
http_access allow all

#coredump_dir /var/spool/squid
coredump_dir /usr/local/ieternal/squid_cache

##### 3. 设置缓存目录
##### !!!必须修改该目录的所属用户及用户组
mkdir /usr/local/ieternal/squid_cache
chown squid:squid /usr/local/ieternal/squid_cache
cd /usr/local/ieternal/squid_cache/
/usr/sbin/squid -k shutdown
/usr/sbin/squid -z

##### 4. 启动
#/usr/sbin/squid
service squid start 

##### 5. 查看监听端口状态
netstat -ntl

一本很好的中文翻译书: 《Squid中文权威指南 》

4. 在内网机器上设置yum代理

#### 在191上执行:设置代理

#yum的代理可以单独设置
vim /etc/yum.conf
# 在最后加上
proxy=http://10.144.7.195:3128
# 也可以如此执行
#cp /etc/yum.conf /etc/yum.conf_original
#echo 'proxy=http://10.144.7.195:3128' >> /etc/yum.conf

#在Linux的命令行底下,一般的程序都是使用http_proxy和ftp_proxy这两个环境变量来获得代理设置的。

#所以只要使用export http_proxy=10.144.7.195:3128就可以使用代理了。
#export http_proxy=10.144.7.195:3128

# 如果要设置系统级别的代理,使用如下语句:
#vim /etc/profile

#http_proxy="10.144.7.195:3128"
#export_http_proxy

完整的命令如下所示:

cp /root/.bash_profile /root/.bash_profile_bak_1231
echo 'http_proxy=10.144.7.195:3128' >> /root/.bash_profile
echo 'export http_proxy' >> /root/.bash_profile
source /root/.bash_profile
echo $http_proxy

此时,可以使用yum安装,更新软件了

5. 使用 kill 杀死某些僵死的进程

# 查看含有tomcat的进程
ps -aux | grep tomcat

# 杀死指定的进程
# xxx 是看到的进程号
kill -9 xxx

# 重新启动tomcat
# ... ...

6. 远程主机签名更改的解决办法

因为重置了131服务器,所以从linux上再次登录时提示远程主机已更改,提示的信息如下:

[root@AY1312181745044978b4Z ~]# ssh 10.144.169.131
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
36:86:33:b9:61:f8:fc:92:df:0b:d7:b3:ae:e5:4e:fb.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:2
RSA host key for 10.144.169.131 has changed and you have requested strict checking.
Host key verification failed.

其实从上面的信息提示可以知道,需要修改 /root/.ssh/known_hosts 。解决方式是将此IP对应的行删除即可。

操作方式是使用 vi 或者 vim 打开该文件,然后按ESC进入命令模式(如果按 a 或者 i 则进入编辑模式),并定位到需要删除的行,按 dd 即可删除一行。

vim ~/.ssh/known_hosts

7. 安装rzsz

在XShell或者其他ssh客户端工具中,可以使用 rz来选择文件上传,也可以用 sz 选择文件下载。所以是个很好用的工具。

安装很简单:

yum install lrzsz -y

下载文件示例:

sz /etc/init.d/mysql

执行此命令后,会弹出一个对话框,选择本地存放路径后就开始下载. 但是对命令行显示可能会有些延迟,完成操作后再按一次回车即可。

至于rz的操作,就更简单了,先 cd 到需要上传的路径,然后执行 rz 命令即可. 然后也是弹出对话框,选择文件上传。

8.  查看磁盘空间使用情况

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             20G  6.1G   13G  33% /
tmpfs                 939M     0  939M   0% /dev/shm
/dev/xvdb1             50G   21G   26G  45% /usr/local/ieternal

9. 查看当前目录的空间大小

# du -ch --max-depth=1
4.5G	./video_source
270M	./client
8.5G	./video
23M	./family
14M	./sid
341M	./repository
20M	./guide
127M	./style
1.5G	./photo
2.0G	./music
3.0G	./video_dest
21G	.
21G	total

-c 是在最后做一个统计的信息, -h 是显示人工可读的统计信息,如270M, 4.5G,等。 最大深度设置为1. 更多选项可以使用 "man du" 来查看

-s 是只显示汇总信息(--summarize),

-h 是显示人类可读的信息(--human-readable)

所以只需要查看单个目录的大小事可以使用:

# du -sh /usr/local/ieternal/mysql_data
28G	/usr/local/ieternal/mysql_data

10. 安装JDK

# 查看可用列表
yum list java*
# 然后安装JDK7,openJDK6有bug,所以...
yum install java-1.7.0-openjdk* -y

检查是否安装正确:

# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.4.el6_5-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
# javac -version
javac 1.7.0_45

11.  设置 wget 代理

wgetrc 的详细参考地址: http://www.gnu.org/software/wget/manual/html_node/Sample-Wgetrc.html

echo 'https_proxy=http://10.144.7.195:3128/' >> $HOME/.wgetrc
echo 'http_proxy=http://10.144.7.195:3128/' >> $HOME/.wgetrc
echo 'ftp_proxy=http://10.144.7.195:3128/' >> $HOME/.wgetrc

12. 安装 tomcat 

# 创建下载目录
mkdir /usr/local/ieternal/download
# 进入下载目录
cd /usr/local/ieternal/download

# 下载文件
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-6/v6.0.37/bin/apache-tomcat-6.0.37.tar.gz
# 解压文件
tar -zxf apache-tomcat-6.0.37.tar.gz
# 剪切目录
mv apache-tomcat-6.0.37 /usr/local/tomcat
# 进入tomcat配置目录
cd /usr/local/tomcat/conf/
# 备份原始的配置文件
cp -a /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml_original

# 按需要编辑
vim /usr/local/tomcat/conf/server.xml

完整的一个示例如下: 其中配置了 2个主机域, 其中也包括默认域的配置,并将 根目录 与 upload 目录都映射到了自定义文件夹。

需要注意的是,默认是不能有汉字存在的,因为默认保存的是ANSI编码。

其中, useSendfile="false" 表示大于48KB的文件也进行压缩,否则默认 true 不会压缩大文件.

参考: https://www.oschina.net/question/919487_237003

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">

  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
  <Listener className="org.apache.catalina.core.JasperListener" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <!-- JMX Support for the Tomcat server. Documentation at /docs/non-existent.html -->
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

<!--
renfufei,20131229,not loadbalance
-->
  <Service name="Catalina">
	<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="250" minSpareThreads="20"/>
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000" URIEncoding="UTF-8"
               redirectPort="8443" useSendfile="false"
				compression="on"
				compressionMinSize="2048"
				noCompressionUserAgents="gozilla,traviata"
				compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,application/javascript,application/x-javascript"
				/>
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" executor="tomcatThreadPool" URIEncoding="UTF-8"/>
    <Engine name="Catalina" defaultHost="www.renfufei.com">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="www.renfufei.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
			<Alias>localhost</Alias>
			<Alias>www.renfufei.cn</Alias>
			<Alias>renfufei.com</Alias>
			<Alias>renfufei.cn</Alias>
			<Context docBase="/usr/local/renfufei/upload"  path="/upload" />
			<Context docBase="/usr/local/renfufei/index"  path="" />
      </Host>
      <Host name="m.renfufei.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
			<Alias>m.renfufei.com</Alias>
			<Alias>m.renfufei.cn</Alias>
			<Context docBase="/usr/local/renfufei/upload"  path="/upload" />
			<Context docBase="/usr/local/renfufei/blog"  path="" />
      </Host>
    </Engine>
  </Service>

</Server>

13.  安装FFMpeg转码程序

FFMpeg 是一个集播放,采集输入源,解码,转码,影音服务器这些功能的强大开源类库。我们主要用于转码。官网地址 百度搜索 FFMPEG即可:

编译安装的方式,需要下载源码包,大体操作如下:

#### Tran1 上

首先安装编译环境。
yum install -y automake autoconf libtool gcc gcc-c++
yum install make
下载所需文件 ffmpeg.tar
wget http://m.ieternal.com/upload/ffmpeg.tar
解压ffmpeg.tar
tar xvf ffmpeg.tar
切换到ffmpeg目录下,执行以下命令。

./configure --prefix=/usr -- disable-yasm 

make 

make install
测试转码命令,注意区分文件名的大小写 包括后缀
ffmpeg -i /usr/local/movi/qq.mov -r 25 -b 3200k -vcodec mpeg4 -ab 128k -ac 2 -ar 44100  /usr/local/movi/kk.mp4。

另外一种是采用别人已经构建编译好的版本,如下所示:

#########
#Tran2.3.4上:
#下载目录: http://ffmpeg.gusari.org/static/64bit/
#01-02版本: d1062ad9c208267241b6dfac7fa4ea25 (md5)

# 创建目录并下载
mkdir /usr/local/ieternal/download
mkdir /usr/local/ffmpeg
cd /usr/local/ieternal/download
wget http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-01-02.tar.gz

mv /usr/local/ieternal/download/ffmpeg.static.64bit.2014-01-02.tar.gz /usr/local/ffmpeg/ffmpeg.tar.gz

cd /usr/local/ffmpeg
# md5校验
md5sum ffmpeg.tar.gz
# 解压到当前目录
tar zxf ffmpeg.tar.gz

# 设置 Path
cp /root/.bash_profile /root/.bash_profile_bak_0102
echo 'PATH=$PATH:/usr/local/ffmpeg' >> /root/.bash_profile
echo 'export PATH' >> /root/.bash_profile
source /root/.bash_profile
echo $PATH

14.

Linux管理日记(一)的更多相关文章

  1. Linux管理日记(二)

    14  启动内网端口转发 ### 2. 查看IP以及网卡信息 # 可以发现, eth0 的地址 inet addr:10.144.7.195, 此为内网网卡 # 公网网卡, eth1 的地址 inet ...

  2. Linux管理日记(三)

    23. 时间同步 同步时间可以使用 root 执行如下命令完成: rdate -s time.nist.gov 如果需要自动同步,可以采用crontab自动调度,每小时执行一次:  编辑 cronta ...

  3. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  4. linux管理面板

    小编在这儿给大家介绍几款linux管理面板,希望感兴趣的童鞋可以去尝试下.个人觉得宝塔和appnode这两个面板不仅从功能和样式都还是做的比较好的,但是部分功能是收费的,但是webmin绝对是一款免费 ...

  5. linux 管理权限

    linux 管理权限 linux 文件 权限 1.使用 ls -l 命令 执行结果如下(/var/log) : drwxr-x--- 2 root adm 4096 2013-08-07 11:03 ...

  6. Linux 管理环境变量的文件分为系统级和用户级别

    Linux 管理环境变量的文件分为系统级和用户级别 管理环境变量的文件也分为系统级和用户级别: 1.系统级:/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于 ...

  7. Linux 学习日记 1

    这是我第一次系统地学习Linux,希望通过这个学习日记收获一些东西把-- @_@ Grub - 启动管理器   在启动时让用户选择要启动的系统.(但是windows比较霸道--重装windows后会将 ...

  8. linux学习日记之目录配制

    linux目录管理遵循FHS标准,主要目标是希望让使用者可以了解已安装软件通常放置于哪个目录上,所以他们希望独立的软件开发商.操作系统制作者.以及想要维护系统的用户,都遵循FHS的标准.也就是说FHS ...

  9. linux学习日记之老男孩

    2016年10月5日企业面试题:cp 命令复制文件是如果有覆盖可能的话如何去除确认步骤,如:将/mnt/text.txt 复制 到/temp/text.txt,去除覆盖确认命令.方法:1.加全路径的c ...

随机推荐

  1. Node.js 模块系统

    为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块, ...

  2. Docker 工具和示例

    pipework Jérôme Petazzoni 编写了一个叫 pipework 的 shell 脚本,可以帮助用户在比较复杂的场景中完成容器的连接. playground Brandon Rhod ...

  3. JMeter(十三)-代理服务器录制脚本

    今天重点说一下jmeter如何利用自身的代理服务器录制脚本 1:工作台下创建代理服务器 2:配置代理,选择录制控制器 3:在Requests FIltering下添加排除模式,配置正则表达式.否则会录 ...

  4. Android Support库——support annotations

    Android Support库是官方出的支持扩展库,包含了丰富的组件.工具类等,通过在Android SDK Manager中勾选以下两项来获取到. 其中,Android Support Libra ...

  5. Bootstrap3 栅格系统-Less mixin 和变量

    除了用于快速布局的预定义栅格类,Bootstrap 还包含了一组 Less 变量和 mixin 用于帮你生成简单.语义化的布局. 变量 通过变量来定义列数.槽(gutter)宽.媒体查询阈值(用于确定 ...

  6. Android开发技巧——Camera拍照功能

    本篇是我对开发项目的拍照功能过程中,对Camera拍照使用的总结.由于camera2是在api level 21(5.0.1)才引入的,而Camera到6.0仍可使用,所以暂未考虑camera2. 文 ...

  7. ScrollView嵌套ListView后,进入页面不从顶部开始显示的问题解决

    ScrollView嵌套ListView后,进入页面不从顶部开始显示的问题解决 首先,正常情况下,如果在ScrollView里嵌套ListView后,会发现ListView只显示1条数据 那么,为了解 ...

  8. [boost][filesystem] 扫描给定目录下所有项

    Intro. Boost的filesystem可以用来扫描给定目录下的所有项. 实现 具体实现代码如下: 需要包含的头文件和使用的命名空间: #include <boost/filesystem ...

  9. maven配置详解

    什么是pom?     pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的 ...

  10. androidApp的完全退出

    思路:搜集整个工程所有的activity,通过循环把工程中所有的activity都关闭. 搜集工程中的activity,可以由单例模式实现, [java] view plaincopy import  ...