标签:Linux

Linux恢复文件目录权限

文件和目录的权限被更改之后可以通过备份目录进行恢复。在Debian下,先安装acl工具。

apt-get install acl

然后使用getfacl命令,从备份目录获取权限列表

getfacl -R /backup/dir/ > dir.facl

再回到想要修改的目录下,通过权限列表恢复

cd /target/dir
setfacl --restore=/backup/dir/dir.facl

大功告成~

在Debian 8 Jessie安装MySQL Server 5.7

在Debian 8 Jessie安装MySQL Server 5.7,其实不只是Debian 8 Jessie,支持的版本还有6和7。安装过程如下

安装APT配置工具,MySQL官方提供

wget http://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb

最新的版本可以从这里获取:https://dev.mysql.com/downloads/repo/apt/

安装配置包,可以选择MySQL的版本5.6 OR 5.7,及是否安装工具包

dpkg -i mysql-apt-config_0.7.3-1_all.deb

更新APT源

apt-get update

安装

apt-get install mysql-community-server

阿里云安装Deiban 8

UPDATE

  • 昨天看aliyun已经支持Debian 8 Jessie的镜像,不用自己升级……
  • 自己升级的系统可以生成快照,但是快照无法回滚,服务器会一直显示“启动中”,无法使用

阿里云提供可安装的OS实在是太有限了,而且更新也非常慢,像Debian 8是15年发布的,到今天已过去了一年,还没有提供安装,很多国外的VPS连Ubuntu 16都已提供尝鲜,更别说Debian 8了。不过,也没关系,我们可以自己手动升级,仅需简单几步:

升级:

1、替换 apt 源配置,将“wheezy”替换为“jessie”

sed -i 's/wheezy/jessie/' /etc/apt/sources.list

2、升级 apt list 索引

apt-get update

3、升级软件包

apt-get upgrade

4、升级系统

apt-get dist-upgrade

5、升级完成!重启后,验证结果:

cat /etc/issue

显示

Debian GNU/Linux 8

再看看uname

uname -a

显示

Linux Machine-id 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux

善后:

1、清理缓存

apt-get clean

2、清理无用文件

apt-get autoremove

3、老的内核也不需要了,删除
查询已安装的内核

dpkg --list|grep linux-image

删除老的

apt-get remove linux-image-3.2.0-4-amd64

显示

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-image-3.2.0-4-amd64
0 upgraded, 0 newly installed, 1 to remove and 1 not upgraded.
After this operation, 106 MB disk space will be freed.

哈哈,可以节省106MB

记录:

在安装Debian 7的时候,阿里云对系统配置作了一些优化,可以继续使用,在 /etc/sysctl.conf 最后加入

vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv4.conf.lo.arp_announce=2

Debian下查看硬盘温度

原理还是通过S.M.A.R.T.来读取硬盘参数,装个名为“hddtemp”的工具就很容易看到。

Debian和Ubuntu下用apt安装即可

sudo apt-get install hddtemp

通过一个简单的命令

hddtemp /dev/sda

就会显示结果

/dev/sda: TOSHIBA DT01ABA300V: 41°C

不支持SMART的硬盘,或者使用USB连接的硬盘盒会显示错误:

/dev/sdb: Hitachi HTS545032B9A302: S.M.A.R.T. not available

关闭root用户的SSH密码登陆

一台自用的服务器,开放SSH服务,看日志发现总会有人扫弱口令,为了安全干脆关闭密码登陆,只允许密钥登陆。但是这台服务器上还有其他账号,必须使用口令验证。查阅了SSHD的手册,发现这也不难,配置文件支持对特定用户进行特殊配置:只要使用“match”关键字进行配置。

对于root用户关闭密码验证登陆,可以在配置文件/etc/ssh/sshd_config的最后加入:

Match User root
PasswordAuthentication no

重启sshd服务器:

service sshd restart

这样,其他用户可以继续使用密码登陆,root用户就不可以了。

几处值得注意的地方:

  • “match”关键字除了可以配合“User”使用之外,还可以配合Group、Host、和 Address 进行配置。
  • “match”关键字首次出现之后,其后出现的配置,都将针对这User(或Group、Host和Address),直至下个match再次出现。这是要把这个配置放到配置文件最后的原因。
  • “match”支持配置的参数还有如下:AllowAgentForwarding, AllowTcpForwarding, Banner, ChrootDirectory, ForceCommand, GatewayPorts, GSSAPIAuthentication, HostbasedAuthentication, KbdInteractiveAuthentication, KerberosAuthentication, KerberosUseKuserok, MaxAuthTries, MaxSessions, PubkeyAuthentication, AuthorizedKeysCommand, AuthorizedKeysCommandRunAs, PasswordAuthentication, PermitEmptyPasswords, PermitOpen, PermitRootLogin, RequiredAuthentications1, RequiredAuthentications2, RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset, X11Forwarding and X11UseLocalHost.

更多配置参看sshd的手册:http://linux.die.net/man/5/sshd_config

Debian装mail客户端发邮件

debian squeeze默认安装的时候,没有装mail工具包,是无法发送邮件的。但是邮件通知又是我们经常使用的一个功能,比如一些cron运行的结果及用户注册通知等等。这次直接使用exim作为mail client用于发送邮件服务,这比装sendmail配置起来容易一些,也节省服务器资源。安装及配置步骤记录如下:

1、apt安装exim

apt-get install exim4-daemon-light

2、配置exim

dpkg-reconfigure exim4-config

进入交互界面后,按照自己的需求进行配置就可以了,注意下面的选择要选第一个“internetsite”:

debian-6-exim-01

在输入IP的时候,可以输入127.0.0.1

debian-6-exim-02

3、然后测试一下:

echo "Its a test." | mail -s Testing name@example.com

Linux下读写Mac的hfsplus硬盘

首先需要安装hfsprogs,我用的是debian直接

apt-get install hfsprogs

然后直接mount就可以了:

root@bananapi ~ # mount -t hfsplus -o force,rw /dev/sdb /mnt/backup320g
mount: warning: /mnt/backup320g seems to be mounted read-only.

怎么还是read-only…看一下dmsg:

root@bananapi ~ # dmesg|tail
[ 4842.317034] hfs: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended.  mounting read-only.

哦,原来硬盘有点儿问题,需要check一下,好吧:

root@bananapi ~ # fsck.hfsplus -f /dev/sdb
** /dev/sdb
root@bananapi ~ # fsck.hfsplus -f /dev/sdb1
** /dev/sdb1
root@bananapi ~ # fsck.hfsplus -f /dev/sdb2
** /dev/sdb2
** Checking HFS Plus volume.
** Checking Extents Overflow file.
** Checking Catalog file.

终于check完了,一共花了⋯⋯半天儿⋯⋯我们再remount一下吧~ 已经没问题了

Debian 6使用官方升级修复新漏洞

最近Linux真是多灾多难,爆出了心跳流血和Bash的严重漏洞,各个发行版都受到严重的影响,但是各显其能,都很快发布了补丁。从响应结果来看,有商业公司背景支持的,都可以通过公司的官方站点下载到升级包。社区发行版也还好,Debian 7 Wheezy 直接upgrade就行了,可坑爹的是我手里好几台Debian 6的服务器在官方源下就没有动静。难道我们就这样被社区抛弃了吗?当然不是!准确来说,是默认的源中没有。Debian社区在今年发布了一则新闻,说Debian 6 会获得一个长期支持(LTS),如果效果好,以后的7和8都将会采用这一方式。具体应该怎么做呢?其实很简单。
(更多…)

取消Apache自动运行在Debian上

遇到一件怪异的事情:在一台新的Debian 6服务器中,Apache被默认安装,并且开机自动运行。因要用nginx作默认的Web Server,Apache就比较碍事儿了,想把它卸载,或者不要启动运行。用apt来删除吧,通过

apt-get remove apache2

却命令提示“Package apache2 is not installed”。失败了,试试这个

apt-get purge apache2

还是不行。难道是当初安装的时候,不是用的apt?算了,不管了,现在让它不自动运行也可。

Debian把计算机的启动和关闭划分为7个阶段,标志位为0~6。其中0,1,6是关闭,2,3,4,5是启动,同时对应到/etc/rc*.d/下的脚本,所以apache的自动启动脚本也很有可能是在这里。如果不需要启动,直接删除

update-rc.d apache2 remove

恢复也可以通过update-rc.d脚本

update-rc.d apache2 start 2 3 4 5

在debian上mutt提示附件加载失败

今天发现原来用于备份数据库并邮寄到信箱的脚本不能用了,调试了一下得到mutt发送email失败的提示。

root@n3yang:~# mutt -a n3yang-backup-20120425.sql.gz -s 'backup' backup@gmail.com
backup@gmail.com: unable to attach file.

这个脚本一直运行的很好,mutt也命令用过很多次,不应该有什么问题才对⋯⋯正当百思不得骑姐的时候,随手打了一下–help看看了帮助,发现比以前看多了一行提示:

  -- treat remaining arguments as addr even if starting with a dash
	when using -a with multiple filenames using -- is mandatory

恍然大悟,原来这个版本的mutt支持了多附件,在使用-a参数之后的需要使用 “–” 明确指出邮件地址:

root@n3yang:~# mutt -a n3yang-backup-20120425.sql.gz -s 'backup' -- backup@gmail.com

或者把邮件地址放到最前面,这样写:

root@n3yang:~# mutt backup@gmail.com -a n3yang-backup-20120425.sql.gz -s 'backup'

问题解决了,再找一台CentOS 5.5看看上面mutt的版本,和我这台debian果然不一样。在CentOS 5.5上的版本是

Mutt 1.4.2.2i (2006-07-14)

debian 6上的是

Mutt 1.5.20 (2009-06-14)

验证了之前版本不一样的推断。