分类目录归档:Linux技巧

Linux技巧

GParted 动态调整Linux分区大小

在虚拟化环境中虚拟机运行一段时间后数据量持续增长,磁盘分区都需要进行扩容,对于Windows系统相对简单,在磁盘瘦格式的状态下直接修改虚拟机磁盘大小,在系统中的磁盘管理里扩展分区即可,实时生效连重启都免了。

而Linux操作起来就比较麻烦,利用卷组管理的可以直接添加虚拟磁盘并扩展逻辑卷,但是如果当初配置虚拟机的时候是直接将新建虚拟磁盘挂载到某个应用目录就比较麻烦了,且一般扩盘的情况都是因为应用数据量太大,用dd导数会浪费大量时间。

使用GParted 可以动态调整Linux分区大小,操作起来比卷组方式扩盘方式还要简单。 继续阅读GParted 动态调整Linux分区大小

Redhat Linux 虚拟机模板初始化脚本

在虚拟化环境中往往利用虚拟机模板部署测试、生成系统,上一篇写了《REDHAT LINUX 安全设置脚本》实际上是对模板的初始设置,一般是按照公司对系统安全的要求来设置。但是针对具体部署的应用系统还有其他方面的要求,比如vCpu个数、内存大小、Swap大小、用户挂载文件系统大小等等,那么在用模板部署完虚拟机后还需要进一步制定虚拟机配置。

在我管理的虚拟化环境中虚拟机初始设置包括:IP地址、主机名称、应用账户、应用账户文件目录、系统管理和监控组件。针对Redhat 5.8 和Redhat 6.4做了一个专门的初始化脚本,目的就是加快虚拟机的部署。按需求自己修改使用吧。 继续阅读Redhat Linux 虚拟机模板初始化脚本

Redhat Linux 安全设置脚本

新建Redhat Linux系统在投产前需要做一些初始化设置,包括主机名称、新建用户、sudo配置、访问控制、口令策略、关键目录权限控制等等。用脚本实现比较节省时间,同时也能记录设置的内容。工作环境中使用的Redhat Linux 版本是 Redhat5.8和 Redhat6.4 ,多少有点儿区别,修改一下也可以应用到其他版本。

Redhat Linux 安全设置脚本 继续阅读Redhat Linux 安全设置脚本

Linux判断进程是否存在并启动该进程

服务器上运行了一些小工具属于非服务类的,程序进程本身不是很稳定总是异常关闭写个脚本监视它,判断进程是否存在并启动该进程。

1.Linux判断进程是否存在并启动该进程

#!/bin/bash
#判断进程是否存在,如果不存在就启动它
PIDS=`ps -ef |grep myprocess |grep -v grep | awk '{print $2}'`
if [ "$PIDS" != "" ]; then
echo "myprocess is runing!"
else
cd /root/
./myprocess
#运行进程
fi

2.linux判断进程是否存在并重启该进程

#!/bin/bash
#判断进程是否存在,如果不存在就启动它如果存在就重启它
PIDS=`ps -ef |grep myprocess |grep -v grep | awk '{print $2}'`
if [ "$PIDS" != "" ]; then
kill -9 $PIDS
#先关闭进程,在运行此进程
cd /root/myprocess
sudo ./myprocess
#重新运行进程
else
cd /root/myprocess
sudo ./myprocess
#运行进程
fi

最后编辑crontab -e 按需要设置运行时间。

Ubuntu虚拟机网卡起不来

运行以前用过的Ubuntu虚拟机发现网卡起不来,尝试添加删除网卡依然不好用,总是提示:eth0: ERROR while getting interface flags: No such device  ….. Failed to bring up eth0.

好久没有用也没有修改过网卡配置,只记得最近清理电脑的时候移动过虚拟机文件的位置。在网上翻了半天找到原因:由于MAC 地址被缓存了。

解决方法很简单:sudo rm /etc/udev/rules.d/70-persistent-net.rules  然后重启Ubuntu虚拟机即可。

mysql-bin.000001占用主机空间的解决方法

Mysql运行一段时间后会在主机名录 /usr/local/mysql/var 下生成大小不等的日志文件,文件命名大概是mysql-bin.000001~mysql-bin.000xxx 按顺序排列,是mysql的日志文件,可以用来恢复mysql数据库。随时间推移他们会占用大量主机空间,一般我们会用数据库备份文件直接恢复mysql,这些日志文件的意义不大。mysql-bin.000001占用大量主机空间的解决方法很简单,只需要用mysql删除mysql-bin.000001 日志文件即可。

1.首先看看日志文件占用了多大空间,如果日志很长时间没有清理会占数GB

[root@fendou.info var]# du -h –max-depth=1 /usr/local/mysql/

2.登陆mysql

[root@fendou.info var]# /usr/local/mysql/bin/mysql -u root -p

3.在mysql中清除日志

mysql> reset master;

再次查看var空间会发现增大不少,mysql-bin.000001~mysql-bin.000xxx文件也自动消失。如果不想每次都手动清理,也可以直接修改配置文件让mysql不保存日志。

[root@fendou.info var]# find / -name my.cnf

my.cnf 是mysql配置文件,将log-bin=mysql-bin 这条注释掉即可

# Replication Master Server (default)
# binary logging is required for replication
#log-bin=mysql-bin

重启mysql后生效

Linux 建立只能转发的最小权限SSH帐号

一直在用自己的VPS给朋友做SSH转发,一般方法建立的linux系统帐号的shell是/bin/bash 虽然权限不高,但登陆系统后可以执行一些常用命令,查看一些配置文件,有一定的安全隐患。解决这个问题最稳妥的方式是将这些SSH转发用账户的权限最小化,最理想状态是SSH用户根本不能登陆系统只能做转发。

如何在 Linux建立只能SSH转发却不能登陆系统的账户可以参考下面的方法 继续阅读Linux 建立只能转发的最小权限SSH帐号

Linux 账户不能解锁的问题

好多版本的Linux都使用 pam_tally.so 对多次登陆失败的用户进行锁定,当用户超过登陆登陆失败的次数时,账户将被自动锁定。使用 passwd -u username 的解锁命令不能对账户解锁。只有先清空登陆失败次数才可以手动解锁,命令为:pam_tally –user –reset 。

如何利用 pam_tally.so锁定用户

可以在 /etc/pam.d/system-auth 中增加2行

auth  required  pam_tally.so  onerr=fail  no_magic_root
account  required  pam_tally.so   deny=3  no_magic_root  even_deny_root_account  per_user  reset

如果不想限制root用户,可以将 even_deny_root_account 取消掉。

因为pam_tally没有自动解锁的功能,所以,在设置限制时,要多加注意,万一全做了限制,而root用户又被锁定了,就只能够进单用户模式解锁了, 当然,也可以添加crontab任务,达到定时自动解锁的功能。

但需要注意的是,如果在/etc/pam.d/system-auth 文件中添加了pam_tally的话,当root被锁定后,crontab任务会失效,所以,最好不要在system-auth 文件中添加pam_tally。

Pscp实现Linux文件传输

Pscp 是 putty 安装包所带的远程文件传输工具,可以在Putty官方下载。使用和 Linux 下 scp 命令相似。

具体的使用 方法如下: PSCP 和 SCP 功能相同,在 windows 下使用,只有一个文件,建议将 pscp.exe 放到 C:\WINDOWS\system32 下面,这样就可以在任何地方调用了。

语法与 scp 相同,下面是几个有用的 options。

  • -p 拷贝文件的时候保留源文件建立的时间。
  • -q 执行文件拷贝时,不显示任何提示消息。
  • -r 拷贝整个目录
  • -v 拷贝文件时,显示提示信息。 继续阅读Pscp实现Linux文件传输