标签 Linux 下的文章

zip tar tar.gz tar.bz2 tar.xz jar 7z的压缩与解压

zip格式

压缩: zip -r tunps.com[目标文件名].zip tunps.com[原文件/目录名]
解压: unzip tunps.com[原文件名].zip
注:-r参数代表递归

tar格式(该格式仅仅打包,不压缩)

打包:tar -cvf tunps.com[目标文件名].tar tunps.com[原文件名/目录名]
解包:tar -xvf tunps.com[原文件名].tar
注:c参数代表create(创建),x参数代表extract(解包),v参数代表verbose(详细信息),f参数代表filename(文件名),所以f后必须接文件名。

tar.gz格式

方式一:利用前面已经打包好的tar文件,直接用压缩命令。
压缩:gzip tunps.com[原文件名].tar
解压:gunzip tunps.com[原文件名].tar.gz

方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -zcvf tunps.com[目标文件名].tar.gz tunps.com[原文件名/目录名]
解压并解包: tar -zxvf tunps.com[原文件名].tar.gz
注:z代表用gzip算法来压缩/解压。

tar.bz2格式

方式一:利用已经打包好的tar文件,直接执行压缩命令:
压缩:bzip2 tunps.com[原文件名].tar
解压:bunzip2 tunps.com[原文件名].tar.bz2

方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -jcvf tunps.com[目标文件名].tar.bz2 tunps.com[原文件名/目录名]
解压并解包: tar -jxvf tunps.com[原文件名].tar.bz2
注:小写j代表用bzip2算法来压缩/解压。

tar.xz格式

方式一:利用已经打包好的tar文件,直接用压缩命令:
压缩:xz tunps.com[原文件名].tar
解压:unxz tunps.com[原文件名].tar.xz

方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -Jcvf tunps.com[目标文件名].tar.xz tunps.com[原文件名/目录名]
解压并解包: tar -Jxvf tunps.com[原文件名].tar.xz
注:大写J代表用xz算法来压缩/解压。

tar.Z格式(已过时)

方式一:利用已经打包好的tar文件,直接用压缩命令:
压缩:compress tunps.com[原文件名].tar
解压:uncompress tunps.com[原文件名].tar.Z

方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -Zcvf tunps.com[目标文件名].tar.Z tunps.com[原文件名/目录名]
解压并解包: tar -Zxvf tunps.com[原文件名].tar.Z
注:大写Z代表用ncompress算法来压缩/解压。另,ncompress是早期Unix系统的压缩格式,但由于ncompress的压缩率太低,现已过时。

jar格式

压缩:jar -cvf tunps.com[目标文件名].jar tunps.com[原文件名/目录名]
解压:jar -xvf tunps.com[原文件名].jar
注:如果是打包的是Java类库,并且该类库中存在主类,那么需要写一个META-INF/MANIFEST.MF配置文件,内容如下:

Manifest-Version: 1.0
Created-By: 1.6.0_27 (Sun Microsystems Inc.)
Main-class: the_name_of_the_main_class_should_be_put_here

然后用如下命令打包:

jar -cvfm tunps.com[目标文件名].jar META-INF/MANIFEST.MF tunps.com[原文件名/目录名]

这样以后就能用“java -jar tunps.com[文件名].jar”命令直接运行主类中的public static void main方法了。

7z格式

压缩:7z a tunps.com[目标文件名].7z tunps.com[原文件名/目录名]
解压:7z x tunps.com[原文件名].7z
注:这个7z解压命令支持rar格式,即:

7z x tunps.com[原文件名].rar

开启Debian/Ubuntu root账户远程ssh登录

Debian 8.0(Jessie)安装完成后默认root账户是无法通过SSH远程登录到主机的。需要修改配置文件 vi /etc/ssh/sshd_config 搜索/PermitRootLogin

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

PermitRootLogin without-password

修改为

PermitRootLogin yes

保存退出:wq

重启sshd服务

/etc/init.d/ssh restart

然后就可以远程root登录Debian/Ubuntu了。这是系统默认的一个安全的设置,为了防止他人通过暴力破解主机的root密码。

DigitalOcean 512MB小内存主机MySQL服务经常崩溃的原因

这段时间在DigitalOcean上面的Web服务器架设好了。但是过几天发现网站频繁的出现WordPress报错:“数据库连接失败”。SSH登录上服务器发现MySQL服务已经停了。重启MySQL service mysql restart 之后过几天又出现了同样的问题,网站服务访问,显示“数据库连接失败”。看来每次手动重启MySQL不是个办法,必须找到出错的原因。

首先考虑既然是MySQL出的问题,我就修改配置文件,把MySQL错误日志打开,一般出错,日志里面应该有我需要的报错详细信息。修改 /etc/mysql/my.cnf

[mysqld_safe]
log-error=/var/log/mysql/tunps.com.err
[mysqld]
log-error=/var/log/mysql/tunps.com.err

加入log-error指定错误日志文件路径。过了几天网站又打不开了,赶紧的查看 /var/log/mysql/tunps.com.err 文件

141222 20:08:50 [Note] Plugin 'FEDERATED' is disabled.
141222 20:08:50 InnoDB: The InnoDB memory heap is disabled
141222 20:08:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
141222 20:08:50 InnoDB: Compressed tables use zlib 1.2.7
141222 20:08:50 InnoDB: Using Linux native AIO
141222 20:08:50 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
141222 20:08:50 InnoDB: Completed initialization of buffer pool
141222 20:08:50 InnoDB: Fatal error: cannot allocate memory for the buffer pool
141222 20:08:50 [ERROR] Plugin 'InnoDB' init function returned error.
141222 20:08:50 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
141222 20:08:50 [ERROR] Unknown/unsupported storage engine: InnoDB
141222 20:08:50 [ERROR] Aborting

发现如上内容。Fatal error: cannot allocate memory for the buffer pool。看来是申请内存失败。网上搜索发现很多人都出现过这个问题。一般会出现在内存较小的VPS主机上。比如我这台主机只有512MB的内存。解决方法是利用Linux的swap交换分区虚拟部分硬盘当内存来使用。具体操作步骤如下

  1. dd if=/dev/zero of=/swapfile bs=1M count=1024

  2. mkswap /swapfile

  3. swapon /swapfile

  4. /etc/fstab 文件新建一行写入 /swapfile swap swap defaults 0 0

这样一个1GB的swap分区就建立成功了,重启MySQL,以后MySQL服务运行得很稳定,再也没有无故停止过。

U盘安装rhel 5.5

今天成功在DELL Optiplex 360上安装rhel 5.5,记录如下,具体步骤不是很清晰了,所以步骤不是很详细。

  1. 下载rhel 5.5 (http://mirrors.sohu.com/RHEL/AS5U5/i386/rhel-server-5.5-i386-dvd.iso),选择适合你的版本有i386、x86_64。
  2. 使用UltraISO打开rhel-server-5.5-i386-dvd.iso里面的images/boot.iso文件。点UltraISO【启动】菜单,【写入硬盘映像...】,写入方式可以是USB-HDD或者USB-HDD+。点【写入】。boot.iso包含了我们启动所需要的两个关键文件:isolinux/vmlinuz和isolinux/initrd.img。
  3. 复制rhel-server-5.5-i386-dvd.iso到U盘根目录。
  4. 重启系统,F12(有些机器不一样)进入选择启动介质界面。选择USB device。就启动到了linux rescue模式。有多种方式供我们选择,输入linux askmethod,回车。
  5. 接下来就是选择语言,键盘布局,然后接下来是最关键是选择安装方式,有NFS/CDROME/HardDisk/FTP/HTTP。选择HardDisk。然后列出来很多分区供我们选择(/dev/sda1,/dev/sda2,/dev/sda3,/dev/sdb4),一般sda指硬盘,sdb是我们插上去的u盘。选择/dev/sdb4,就查找到u盘上的iso镜像。接下来是分区,设置密码、防火墙、SELinux、网卡配置、选择软件包等。。这些不详讲。关键一步,选择grub安装在那个地方,默认只有/dev/sdb,不能安装grub到u盘,否则u盘grub被覆盖了就完蛋鸟。选择no boot loader will be installed。等待安装完成。
  6. 安装完了,继续F12进u盘,输入chroot /mnt/sysimage,挂载root分区。
  7. fdisk -l 查看继续上的分区情况。一般有swap,根分区,/boot分区等。假设硬盘是/dev/sda,u盘是/dev/sdb。、dev/sda1是/boot,dev/sda2是/,dev/sda3是swap。

    grub-install /dev/sda
    grub> find /grub/stage1   (或者/boot/grub/stage1)
    grub> root (hd0,0)   (这个是/boot分区,对应/boot,如果没有单独划分/boot分区,这里root指定/分区)
    grub> setup (hd0)
    grub> quit
    
  8. 这样grub就安装在硬盘上了,还需要新建一个grub菜单。

    vi /boot/grub/grub.conf

    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    title rhel 5.5
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ rhgb quiet
    initrd /initrd-2.6.18-194.el5PAE.img
    
  9. 修改权限:

    chmod 600 /boot/grub/grub.conf

    软链接:

    ln -s /boot/grub/grub.conf /boot/grub/menu.lst

  10. 第一次启动后的设置,不详讲。