RHEL/CENTOS 上配置可写入型tftp的方法

  1. tftp是xinet服务,所以安装tftp服务至少需要安装xinetd和tftp-server两个包。另外tftp包为tftp客户端程序,可用于测试。
  2. 编辑tftp配置文件/etc/xinetd.d/tftp,确保命令选项中有-c,意思是可以上传(创建)新文件,如果没有此参数,则只能覆盖现有文件(如果权限足够的话)。另外disable当然要设为no,否则服务不会启用。
  3. 设置SELinux放行写入操作:setsebool -P tftp_anon_write=1
  4. 设置tftp目录权限,开放所有权限,RHEL6/CENTOS6的目录默认为/var/lib/tftpboot,RHEL5/CENTOS5则为/tftpboot:
chmod 777 /var/lib/tftpboot

RHEL/CENTOS 下启用vsftpd匿名上传可能需要做的操作

1、修改文件系统权限

chmod -R 777 /var/ftp/pub/

2、使用可写入型的SELinux Context值

semanage fcontext -a -t public_content_rw_t '/var/ftp/pub(/.*)?' #semanage来自于policycoreutils-python包
restorecon -R /var/ftp/pub/

3、修改SELinux布尔值放行匿名上传(写入)

setsebool -P allow_ftpd_anon_write=1

4、修改/etc/vsftpd/vsftpd.conf配置文件

anonymous_enable=YES    #启用匿名模式
anon_upload_enable=yes   #允许匿名用户上传文件
anon_mkdir_write_enable=yes  #允许匿名用户创建目录
anon_other_write_enable=yes   #允许匿名用户删除、移动、修改文件权限等其他修改操作
write_enable=YES    #全局可写开关,默认已开启(Debian系默认关闭)
chown_uploads=YES    #可选,对于匿名用户上传的文件,是否指定其所有者(不指定则为ftp)
chown_username=ftp    #如果chown_uploads设为YES,指定哪个用户为匿名上传文件的所有者
chown_upload_mode=644   #貌似效果不如anon_umask
anon_umask=000     #匿名上传文件的umask值,为8进制,必须以0开头,chown_uploads=NO时有效
local_umask=000     #本地用户上传文件的umask值,为8进制,必须以0开头,chown_uploads=YES时有效
no_anon_password=YES  #匿名用户无需密码验证

seccomp_sandbox=NO    #某些发行版上传出现530报错可以尝试这个参数

Linux下bash脚本借用tr命令批量修改文件名 (Change file name by command ‘tr’ using bash script under Linux)

bash脚本调用tr命令修改文件名,tr命令参数由用户指定。The bash script will call command ‘tr’ to change file names. parameters transfered to ‘tr’ is specified by user.

# Usage: fn-tr -p <tr parameters> -r <file/directory> <file/directory> ...
# -p parameters will transfered to command 'tr'  指定将会传递给tr命令的参数
# -d change directory     对目录执行更改操作
# -f change normal file  对普通文件执行更改操作
# -r recursive  递归搜索子目录

举例Example:
将/docs下文件名中的多个连续空格压缩到一个 remove duplicated white spaces of the filenames under /docs

ftr -p '-s " "' -fr /docs/*

bash脚本下载:bash script download:
https://gitee.com/mjpclab/Shell-Utility/raw/master/bin/fn-tr
https://raw.githubusercontent.com/mjpclab/Shell-Utility/master/bin/fn-tr

Linux下bash脚本批量修改文件名大写/小写 (Change file name to uppercase/lowercase using bash script under Linux)

# Usage: chfcase [-lur] <file/directory> <file/directory> ...
# -l change file name to lower case (default)    更改文件名为小写(默认)
# -u change file name to upper case  更改文件名为大写
# -d change directory  对目录执行更改操作
# -f change normal file  对普通文件执行更改操作
# -r recursive  递归搜索子目录
#

举例Example:

更改当前目录及所有子目录普通文件名为小写 Change all normal file names to lowercase under current directory recursively:

chfcase -lfr *

将当/var/html下的子目录更改为大写 Change directory name which under /var/www to upper case

chfcase -ud /var/html/*

bash脚本下载:bash script download:
https://gitee.com/mjpclab/Shell-Utility/raw/master/bin/fn-case
https://raw.githubusercontent.com/mjpclab/Shell-Utility/master/bin/fn-case

Redhat Enterprise Linux (RHEL) 6 没有php-mbstring包的解决办法

如果你有RHN订阅账号,可以直接用RHN提供的RHEL Optional仓库安装。
如果没有,可以使用CentOS 6 第二张DVD中的php-mbstring来安装,CentOS6 和RHEL6 使用的是相同的内核编译,因此可以放心兼容使用。

以本人虚拟机中的RHEL 6.2为例,在安装了php各个包以后,发现缺少php-mbstring,于是找到CentOS 6.2的DVD2 iso文件并提取出php-mbstring-5.3.3-3.el6_1.3.i686.rpm,直接安装即可:

rpm -ivh php-mbstring-5.3.3-3.el6_1.3.i686.rpm
#或者:
yum localinstall php-mbstring-5.3.3-3.el6_1.3.i686.rpm

[转]删除mysql binary log的方法

  1. 查看当前日志记录
mysql> show binary logs;
+—————-+———–+
| Log_name | File_size |
+—————-+———–+
| mysql-bin.000001 | 150462942 |
| mysql-bin.000002 | 125 |
| mysql-bin.000003 | 106 |
+—————-+———–+
  1. 删除bin-log(删除mysql-bin.000003之前的而没有包含mysql-bin.000003)
mysql> purge binary logs to ‘mysql-bin.000003′;
Query OK, 0 rows affected (0.16 sec)

[转]FORFILES的用法(常用于备份文件的处理)

今天负责删除操作系统为windows server 2003的服务器上的log文件,本来打算直接用* .log 作为search 条件然后手动删除,无意中发现原来windows server 2003中竟然有forfiles.exe这个非常好用的新工具,用起来是非常方便,有了它就可以让它自己执行删除,你可以继续作别的事了。现在对它的用法做个简单介绍。

Forfiles
从文件夹或树中选择要进行批处理的文件。

语法
forfiles [/p Path] [/m SearchMask] [/s] [/c Command] [/d[{+ | -}] [{MM/DD/YYYY | DD}]]

参数
/p Path

指定 Path,表明要从哪里开始搜索。默认的文件夹是当前工作目录,该目录通过键入句号 (.) 指定。

/m SearchMask

按照 SearchMask 搜索文件。默认的 SearchMask 是 .

/s

指示 forfiles 在子目录中搜索。

/c Command

在每个文件上运行指定的 Command。带有空格的命令字符串必须用引号括起来。默认的 Command 是 “cmd /c echo @file”。

/d[{+ | -}] [{MM/DD/YYYY | DD}]

选择日期大于或等于 (+)(或者小于或等于 (-))指定日期的文件,其中 MM/DD/YYYY 是指定的日期,DD 是当前日期减去 DD 天。如果未指定 + 或 -,则使用 +。DD 的有效范围是 0 – 32768。

/?

在命令提示符下显示帮助。

注释
?
Forfiles 最常用于批处理文件中。

?
Forfiles /s 与 dir /s 类似。

?
下表列出了可在 /cCommand 命令字符串中使用的变量。

变量 描述
@file

文件名

@fname

无扩展名的文件名

@ext

文件扩展名

@path

文件的绝对路径

@relpath

文件的相对路径

@isdir

如果文件类型是目录,则计算值为 TRUE,否则值为 FALSE

@fsize

用字节表示的文件大小

@fdate

文件中上次修改的日期戳

@ftime

文件中上次修改的时间戳

?
使用 forfiles,可以在多个文件上运行命令或将参数传递给多个文件。例如,可以在树中带有 .txt 扩展名的所有文件上运行 TYPE 命令。或者,可以用文件名“Myinput.txt”作为第一个参数,在 C:\ 驱动器上执行每个批处理文件 (.bat)。

?
通过使用 forfiles,可以执行下列任何操作:

?
使用 /d 按照绝对或相对日期选择文件。

?
使用诸如 @fsize(文件大小)和 @fdate(文件日期)这样的变量构建文件的存档树。

?
使用 @isdir 变量区分文件和目录。

?
通过在命令行中包含特殊字符和使用十六进制代码 0xHH 环绕字符来格式化输出内容。

?
Forfiles 通过在旨在仅处理单个文件的工具上执行“循环子目录”标记来发挥作用。

示例
要列出驱动器 C: 上的所有批处理文件,请键入:

forfiles /p c:\ /s /m*.bat /c”cmd /c echo @file is a batch file”

要列出驱动器 C: 上的所有目录,请键入:

forfiles /p c:\ /s /m. /c”cmd /c if @isdir==true echo @file is a directory”

要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:

forfiles /p c:\ /s /m. /dt-100 /c”cmd /c echo @file :date >= 100 days”

要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:

forfiles /p c:\ /s /m. /dt-01011993 /c”cmd /c echo @file is quite old!”

要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:

forfiles /p c:\ /s /m. /c “cmd /c echo extension of @file is 0x09@ext0x09” With:

要列出驱动器 C: 上的所有批处理文件,请键入:

forfiles /p c:\ /s /m *.bat /c “cmd /c echo @file is a batch file”

要列出驱动器 C: 上的所有目录,请键入:

forfiles /p c:\ /s /m . /c “cmd /c if @isdir==true echo @file is a directory”

要列出驱动器 C: 上存在时间多于 100 天的所有文件,请键入:

forfiles /p c:\ /s /m . /d t-100 /c “cmd /c echo @file :date >= 100 days”

要列出驱动器 C: 上 1993 年 1 月 1 日以前创建的所有文件,而且对于日期早于 1993 年 1 月 1 日的文件显示“file is quite old!”,请键入:

forfiles /p c:\ /s /m . /d t-01011993 /c “cmd /c echo @file is quite old!”

要按列格式列出驱动器 C: 上所有文件的扩展名,请键入:

forfiles /p c:\ /s /m. /c “cmd /c echo extension of @file is 0x09@ext0x09”