CentOS中无法使用setup命令 -bash:setup: command not found

出现这个问题是因为 Minimal 安装模式 所以并没有安装 setuptool 软件.

解决办法为:

使用yum 源直接下载安装 或者 去下载 setuptool 软件包安装

#安装setuptool

yum install setuptool

#可以发现执行setup后不全,再安装一个用于系统服务管理

yum install ntsysv

#安装setup中配套的防火墙设置

yum install system-config-securitylevel-tui

#安装setup中配套的网络设置

yum install system-config-network-tui

#安装setup中配套的键盘设置

yum install system-config-keyboard

FTP错误ftp: connect: No route to host的解决办法

现象:

ftp: connect: No route to host

ftp> ls
227 Entering Passive Mode (1,2,3,4,43,196)
ftp: connect: No route to host
ftp> passive
Passive mode off.

 

停止ftp服务器上的iptables 则一切正常,于是判断是iptables的问题

FTP错误ftp: connect: No route to host的解决办法
Try “modprobe ip_conntrack_ftp”, if that helps. If yes, then you should
add that module to /etc/sysconfig/iptables-config.

In /etc/sysconfig/iptables-config try setting
IPTABLES_MODULES=”ip_nat_ftp ip_conntrack_ftp”
and restart iptables.

 

[root@TDNS001 ~]# service iptables stop
Flushing firewall rules: [  OK  ]
Setting chains to policy ACCEPT: filter [  OK  ]
Unloading iptables modules: [  OK  ]
[root@TDNS001 ~]# service iptables start
Applying iptables firewall rules: [  OK  ]
Loading additional iptables modules: ip_nat_ftp ip_conntrack_ftp [  OK  ]

解决crontab不执行的问题

crontab不执行的问题困扰了好长时间,脚本写的都正确,但是就是不执行,最终解决方法如下:
crontab -u root /var/spool/cron/root
这样root用户的crontab就生效了
service crond restart
重启下服务就好了

后台执行scp

scp一些大的数据文件,大多时候想挂后台,由于scp要输入密码,所以不能用nuhop,为了安全,也不去配置ssh的公钥等等。

新开一个shell:
#ps -elf | grep scp
0 D root  2659  2642 0  80   0 – 13472 sync_p 15:32 pts/0    00:00:28 scp -r lbs root@/data/htdocs/
#kill -stop 2659
回到原来的shell:
#jobs
[1]+  Stopped xxxxxxxx –会看到这个,这个1是job id
那么
#bg 1

vsftpd 226 553 550 530错误

vsftpd遇到了几个错误:

1. 226 transfer done (but failed to open directory)

2. 553 Could not create file.

3. 550 Create directory operation failed.

因为SELINUX=enforcing模式,所以出现以上3个错误,

解决方法:

setsebool -P ftp_home_dir=on #解决错误1

setsebool -P allow_ftpd_full_access=on #解决错误2、3

4. 530 Login incorrect

解决方法:

vim /etc/pam.d/vsftpd

 

增加2行:

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers

 

CentOS/RHEL安装setup配置工具

在RHEL/CentOS中,可以很方便使用setup配置工具配置网络、防火墙、服务等很多关键配置项,使用非常方便,然而采用最小化安装后,默认并没有安装该工具,运行该命令提示如下:

[root@localhost ~]# setup

-bash: setup: command not found

这时就要手动去安装这个快速配置程序了.

[root@localhost ~]# yum install setuptool ntsysv system-config-network system-config-keyboard system-config-network-tui

# yum install setuptool

发现setup命令可以用了,可是系统服务,网络配置,键盘配置,时区配置不见了.安装下这几个配置程序安装系统服务配置

# yum install ntsysv 安装网络配置

# yum install system-config-network 安装键盘时区配置

# yum install system-config-keyboard

system-config-network system-config-keyboard这两个包的依赖很多,能手工改就手动改吧,没特殊应用就不用装了.

Win 7 “磁盘上没有足够的空间完成此操作”的解决方法

主分区: C盘 15G

扩展分区: D盘 60G, E盘 60G

在安装Win7 的时候把C盘和D盘都删除掉了,直接在C盘上安装了Win 7,但安装完win 7后,发现D盘的空间无法再分配,一分配就提示”磁盘上没有足够的空间完成此操作”,后来发现由于D E盘都属于同一扩展分区下的,所以这种情况导致D盘的扩展分区的分区出现无法识别的情况,要解决这问题的方法就是使用动态磁盘.

 

在关动态磁盘转换的细节详见以下.

 

C:\Users\Administrator>diskpart

Microsoft DiskPart 版本 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
在计算机上: WILDLI

DISKPART> list disk

磁盘 ### 状态 大小 可用 Dyn Gpt
——– ————- ——- ——- — —
磁盘 0 联机 149 GB 1024 KB *

DISKPART> select disk 0

磁盘 0 现在是所选磁盘。

DISKPART> list partition

分区 ### 类型 大小 偏移量
————- —————- ——- ——-
分区 1 动态数据 992 KB 31 KB
分区 2 动态数据 100 MB 1024 KB
分区 3 动态数据 14 GB 101 MB
分区 4 动态数据 134 GB 14 GB

上面的信息已经转换过。

DISKPART> conver

Microsoft DiskPart 版本 6.1.7600

BASIC – 将磁盘从动态转更换为基本。
DYNAMIC – 将磁盘从基本转更换为动态。
GPT – 将磁盘从 MBR 转更换为 GPT。
MBR – 将磁盘从 GPT 转更换为 MBR。

DISKPART> conver DYNAMIC
注意:转换为动态磁盘不可逆
分类: Windows7

Linux统计文件行数

语法:wc [选项] 文件…

说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。

该命令各选项含义如下:

– c 统计字节数。

– l 统计行数。

– w 统计字数。

这些选项可以组合使用。

输出列的顺序和数目不受选项的顺序和数目的影响。

总是按下述顺序显示并且每项最多一列。

行数、字数、字节数、文件名

如果命令行中没有文件名,则输出中不出现文件名。

例如:

$ wc – lcw file1 file2
4 33 file1
7 52 file2
11 11 85 total

举例分析:

1.统计demo目录下,js文件数量:
find demo/ -name “*.js” |wc -l

2.统计demo目录下所有js文件代码行数:
find demo/ -name “*.js” |xargs cat|wc -l 或 wc -l `find ./ -name “*.js”`|tail -n1

3.统计demo目录下所有js文件代码行数,过滤了空行:
find /demo -name “*.js” |xargs cat|grep -v ^$|wc -l

【转】MYSQL 编译configure向cmake过渡指南

MYSQL 编译configure向cmake过渡指南

网址:http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide

从mysql5.5起,mysql源码安装开始使用cmake了。下面是介绍configure选项如何映射到CMake的等值参数。

1. 命令语法:

[TABLE=2]

重新编译时,需要清除旧的对象文件和缓存信息

# make clean

# rm -f CMakeCache.txt

2.安装选项

[TABLE=3]

CMAKE_INSTALL_PREFIX值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括CMAKE_INSTALL_PREFIX路径。如-DINSTALL_SBINDIR=sbin的绝对路径是/usr/local/mysql/sbin

3.存储引擎选项

mysql存储引擎是插件式的,因此插件控制选项可以指定那个存储引擎安装。

configure编译插件选项–with-plugins=csv,myisam,myisammrg,heap,innobase,

archive,blackhole在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。

可以使用以下选择来安装innodb,archive,blackhole存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1

(1可以使用on代替)

如果既不是-DWITH_<ENGINE>_STORAGE_ENGINE 也不是 -DWITHOUT_<ENGINE>_STORAGE_ENGINE来指定存储引擎,该存储引擎将安装成共享模块式的。如果不是共享模块式的将排除在外。共享模块安装时必须使用INSTALL PLUGIN语句或–plugin-load才可以使用。

4.lib库选项

[TABLE=4]

有关插件的CMake的选项的其他信息,请查阅:

http://forge.mysql.com/wiki/MySQL_Internals_Support_for_Plug-Ins

5.其他选项

之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如:

–with-debug => WITH_DEBUG=1
–with-embedded-server => WITH_EMBEDDED_SERVER

[TABLE=5]

6.调试配置过程

使用configure编译完将生成config.log和config.status文件。

使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。

7.第三方接口工具

在之前的版本,第三方工具从MySQL顶层源目录中读取源configure.in文件来确定mysql版本。如:对5.5.7 – RC版本的AC_INIT线看起来像这样:

AC_INIT([MySQL Server], [5.5.7-rc], [], [mysql])

现在的版本可以直接读取版本文件。如:如果版本是5.5.8,文件看起来像这样的:

MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=5
MYSQL_VERSION_PATCH=8
MYSQL_VERSION_EXTRA=

如果源码包不是GA版,MYSQL_VERSION_EXTRA的值将非空。如:对于一个发布RC版本是这样的:

MYSQL_VERSION_EXTRA=rc

构建5位数字的版本号,使用下面公式:

MYSQL_VERSION_MAJOR*10000 + MYSQL_VERSION_MINOR*100 + MYSQL_VERSION_PATCH

xampp配置xdebug

xampp为一套PHP集成环境,其中PHP中就包含了开发中流行的类库。 xdebug.dll就是其中一个例子。在网上找了一些配置xdebug的文章。其中都说是 zend_extension_tx=”D:/xampp/php/ext/php_xdebug.dll”。但是通过自己的配置发现。在配置的时候不能用这条语句来加入xdebug。要用zend_extension=”D:/xampp/php/ext/php_xdebug.dll”。

还有一点就是:xampp默认是配置好xdebug的。但是并没有加载过来。如果你要想按照xampp自己的配置方式来加入xdebug。那么只需要找到;zend_extension = “….”;去掉前面的分号“;”重启apache即可。但是为了阅读php.ini方便起见,我认为还是在php.ini的底部把配置xdebug的代码写在一起比较好。至于xampp自带的配置方式可以作为一个带注释的介绍来理解,当然要求你的英文足够好了。呵呵。

具体配置xdebug的代码如下:

[Xdebug]

zend_extension=”D:/xampp/php/ext/php_xdebug.dll”

xdebug.auto_trace=1

xdebug.collect_params=1

xdebug.collect_return=1

xdebug.profiler_enable=1

xdebug.profiler_output_name = cachegrind.out.%p

xdebug.trace_output_dir=”D:/xampp/xdebug”

xdebug.profiler_output_dir=”D:/xampp/xdebug”

其中路径根据自己的电脑配置和喜好来设定。当然xdebug与wincachegrind一起使用可以用来分析代码的执行效率。具体方法下篇文章中再做解释。