2017年6月

Life in a Web Server

Web 服务器总是忙忙碌碌的,从不下班,这似乎比运维工程师还要辛苦。

每一个线程都在忙着,然而也有不太一样的,比如那个被数据库操作拖在那里的,就只能发呆;而那个被糟糕的代码搞得堆栈溢出的,看起来已经要崩溃了。

处理完请求之后,Web 服务器会给出生成的页面和 Cookie(饼干),如果下次带着这些饼干的编号来,那就可以很快地找到你要的饼干——这就是用饼干保存的会话。

这就是 Tomcat Web 服务器里面的生活。


via: http://turnoff.us/geek/life-in-a-web-server/

作者:Daniel Stori 译者:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

几天前我们写了一篇关于在 Linux 中 3 种创建交换文件的方法,它们是常见的方法,但是需要人工操作。

今天我发现了一个 Gary Stafford 写的 shell 小脚本(两个 shell 脚本,一个用于创建交换文件,另外一个用于移除交换文件),它可以帮助我们在 Linux 中创建/移除并且自动挂载交换文件。

默认这个脚本创建并挂载 512MB 的交换文件。如果你想要更多的交换空间和不同的文件名,你需要相应地修改脚本。修改脚本不是一件困难的事,因为这是一个容易上手而且很小的脚本。

推荐阅读: Linux 中 3 种简易创建或扩展交换空间的方法

如何检查当前交换文件大小

使用 freeswapon 命令检查已经存在交换空间。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0G        1.3G        139M         45M        483M        426M
Swap:          2.0G        655M        1.4G

$ swapon --show
NAME      TYPE      SIZE   USED PRIO
/dev/sda5 partition   2G 655.2M   -1

上面的输出显示我当前的交换空间是 2GB

创建交换文件

创建 create_swap.sh 文件并添加下面的内容来自动化交换空间的创建和挂载。

$ nano create_swap.sh
#!/bin/sh

# size of swapfile in megabytes
swapsize=1024

# does the swap file already exist?
grep -q "swapfile" /etc/fstab

# if not then create it
if [ $? -ne 0 ]; then
    echo 'swapfile not found. Adding swapfile.'
    fallocate -l ${swapsize}M /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    echo '/swapfile none swap defaults 0 0' >> /etc/fstab
else
    echo 'swapfile found. No changes made.'
fi

echo '--------------------------------------------'
echo 'Check whether the swap space created or not?'
echo '--------------------------------------------'
swapon --show

给文件添加执行权限。

$ sudo +x create_swap.sh

运行文件来创建和挂载交换文件。

$ sudo ./create_swap.sh

swapfile not found. Adding swapfile.
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=d9004261-396a-4321-a45f-9923e3e1328c
--------------------------------------------
Check whether the swap space created or not?
--------------------------------------------
NAME      TYPE       SIZE   USED PRIO
/dev/sda5 partition    2G 954.1M   -1
/swapfile file      1024M     0B   -2

你可以看到新的 1024M 的 swapfile。重启系统以使用新的交换文件。

移除交换文件

如果不再需要交换文件,接着创建 remove_swap.sh 文件并添加下面的内容来移除交换文件以及它的 /etc/fstab 挂载点。

$ nano remove_swap.sh
#!/bin/sh

# does the swap file exist?
grep -q "swapfile" /etc/fstab

# if it does then remove it
if [ $? -eq 0 ]; then
    echo 'swapfile found. Removing swapfile.'
    sed -i '/swapfile/d' /etc/fstab
    echo "3" > /proc/sys/vm/drop_caches
    swapoff -a
    rm -f /swapfile
else
    echo 'No swapfile found. No changes made.'
fi

echo '--------------------------------------------'
echo 'Check whether the swap space removed or not?'
echo '--------------------------------------------'
swapon --show

并给文件添加可执行权限。

$ sudo +x remove_swap.sh

运行脚本来移除并卸载交换文件。

$ sudo ./remove_swap.sh

swapfile found. Removing swapfile.
swapoff: /dev/sda5: swapoff failed: Cannot allocate memory
--------------------------------------------
Check whether the swap space removed or not?
--------------------------------------------
NAME      TYPE      SIZE   USED PRIO
/dev/sda5 partition   2G 951.8M   -1

via: http://www.2daygeek.com/shell-script-create-add-extend-swap-space-linux/

作者:2DAYGEEK 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Powerline 是 vim、zsh、bash、tmux、IPython、Awesome、bar、fish、lemonbar、pdb、rc、shell、tcsh、wm、i3 和 Qtil 中的一个状态栏插件。它给程序提供了状态栏,并使程序更好看。它用 Python 写成。

它是可扩展的并且功能丰富,它用 Python 写成,非常轻便不需要任何第三方的依赖,只需要一个 Python 解释器。

它的稳定以及可测试的代码库经过完整的测试,并且在 Python 2.6+ 和 Python 3 中工作良好。

最初该状态栏只在 vim 中可用,随后项目进化为许多 Linux 程序如 zsh、bash、tmux、IPython、Awesome、i3 和 Qtil 提供状态栏。

其配置以及配色方案用 JSON 写成。它是一种标准简易的文件格式,可以让用户配置 Powerline 支持的程序。

快速并且轻量级,支持守护进程可以提供更好的性能。

安装预先要求

确保你的系统有下面预先要求的包。如果没有,在安装 powerline 之前先安装它们。

对于 Debian 用户,使用 APT 包管理器或者Apt-Get 包管理器安装需要的包。

$ sudo apt-get install python-pip git

对于 openSUSE 用户,使用 Zypper 包管理器安装需要的包。

$ sudo zypper install python-pip git

对于 Fedora 用户,使用 dnf 包管理器安装需要的包。

$ sudo dnf install python-pip git

对于 Arch Linux 用户,使用 pacman 包管理器安装需要的包。

$ sudo pacman -S python-pip git

对于 CentOS/RHEL 用户,使用 yum 包管理器安装需要的包。

$ sudo yum install python-pip git

如何在 Linux 中安装 Powerline

在本篇中,我们将向你展示如何安装 Powerline。以及如何在基于 Debian 以及 RHEL 的系统中在 Bash、tumx 和 Vim 中使用。

$ sudo pip install git+git://github.com/Lokaltog/powerline

找出 powerline 安装位置以便配置程序。

$ pip show powerline-status
Name: powerline-status
Version: 2.6.dev9999+git.517f38c566456d65a2170f9bc310e6b4f8112282
Summary: The ultimate statusline/prompt utility.
Home-page: https://github.com/powerline/powerline
Author: Kim Silkebaekken
Author-email: [email protected]
License: MIT
Location: /usr/lib/python2.7/site-packages
Requires: 

在 Bash Shell 中添加/启用 Powerline

添加下面的行到 .bashrc 中,它会默认在基础 shell 中启用 powerline。

if [ -f `which powerline-daemon` ]; then
  powerline-daemon -q
  POWERLINE_BASH_CONTINUATION=1
  POWERLINE_BASH_SELECT=1
  . /usr/local/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh
fi

重新加载 .bashrc 文件使得 powerline 在当前窗口中立即生效。

$ source ~/.bashrc

在 tmux 中添加/启用 Powerline

tmux 是最好的终端仿真程序之一,它提供多窗口以及状态栏,但是相比 powerline 的状态栏看上去不那么好。添加下面的的行到 .tmux.conf 中,它会默认在 tmux 中启用 powerline。如果你没有找到 .tmux.conf 文件,那么创建一个新的。

# vi ~/.tmuc.conf

source "/usr/local/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf"

在 Vim 中添加/启用 Powerline

vim 是管理员最爱的文本编辑器之一。添加下面的行到 .vimrc 中,启用 powerline 使 vim 更加强大。注意,在 vim 7.x 中,你可能不会在系统中发现 .vimrc 文件,因此不必担心,创建一个新的文件,并添加下面行。

# vi ~/.vimrc

set  rtp+=/usr/local/lib/python2.7/site-packages/powerline/bindings/vim/
set laststatus=2
set t_Co=256


via: http://www.2daygeek.com/powerline-adds-powerful-statusline-to-vim-bash-tumx-in-ubuntu-fedora-debian-arch-linux-mint/

作者:2DAYGEEK 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

现如今要记住类似 email、银行、社交媒体、在线支付、ftp 等等这么多的密码相信对每一个人来说都是一个巨大的挑战。

由于需求和使用,密码管理器现如今变得非常的流行。在 Linux 中我们可以有很多选择,包括基于 GUI 和基于 CLI 两种。今天我们要讲的是一款基于 CLI 的密码管理器叫做 pass 。

pass 是 Linux 上的一个简单的命令行密码管理器,它将密码存储在一个 gpg 加密后的文件里。这些加密后的文件很好地组织按目录结构存放。

所有密码都存在于 ~/.password-store 中,它提供了添加、编辑、生成和检索密码等简单命令。

它是一个非常简短和简单的 shell 脚本。 它能够临时将密码放在剪贴板上,并使用 git 跟踪密码的修改。

这是一个很小的 shell 脚本,它还使用了少量的默认工具比如 gnupgtreegit,同时还有活跃的社区为它提供 GUI 和扩展。

如何在 Linux 中安装 Pass

Pass 可从大多数 Linux 的主要发行版的仓库中获得。 所以,你可以使用你的分布式包管理器来安装它。

对于基于 Debian 的系统,你可以使用 apt-getapt 包管理器命令来安装 pass。

$ sudo apt-get install pass

对于基于 RHEL/CentOS 的操作系统, 使用 yum 包管理器命令来安装它。

$ sudo yum install pass

Fedora 系统可用 dnf 包管理器命令来安装。

$ sudo dnf install pass

openSUSE 系统可以用 zypper 包管理器命令来安装。

$ sudo zypper in password-store

对于基于 Arch Linux 的操作系统用 pacman 包管理器来安装它。

$ pacman -S pass

如何生成 GPG 密钥对

确保你拥有你个人的 GPG 密钥对。如果没有的话,你可以通过在终端中输入以下的命令并安装指导来创建你的 GPG 密钥对。

$ gpg --gen-key

运行以上的命令以生成 GPG 密钥对时会有一系列的问题询问,谨慎输入问题的答案,其中有一些只要使用默认值即可。

初始化密码存储

如果你已经有了 GPG 密钥对,请通过运行以下命令初始化本地密码存储,你可以使用 email-id 或 gpg-id 初始化。

$ pass init [email protected]
mkdir: created directory '/home/magi/.password-store/'
Password store initialized for [email protected]

上述命令将在 ~/.password-store 目录下创建一个密码存储区。

pass 命令提供了简单的语法来管理密码。 我们一个个来看,如何添加、编辑、生成和检索密码。

通过下面的命令检查目录结构树。

$ pass
or
$ pass ls
or
$ pass show
Password Store

我没有看到任何树型结构,所以我们将根据我们的需求来创建一个。

插入一个新的密码信息

我们将通过运行以下命令来保存 gmail 的 id 及其密码。

$ pass insert eMail/[email protected]
mkdir: created directory '/home/magi/.password-store/eMail'
Enter password for eMail/[email protected]: 
Retype password for eMail/[email protected]:

执行重复操作,直到所有的密码插入完成。 比如保存 Facebook 密码。

$ pass insert Social/Facebook_2daygeek
mkdir: created directory '/home/magi/.password-store/Social'
Enter password for Social/Facebook_2daygeek: 
Retype password for Social/Facebook_2daygeek: 

我们可以列出存储中的所有现有的密码。

$ pass show
Password Store
├── 2g
├── Bank
├── eMail
│   ├── [email protected]
│   └── [email protected]
├── eMail
├── Social
│   ├── Facebook_2daygeek
│   └── Gplus_2daygeek
├── Social
└── Sudha
    └── [email protected]

显示已有密码

运行以下命令从密码存储中检索密码信息,它会询问你输入密码以解锁。

$ pass eMail/[email protected]
*******

在剪贴板中复制密码

要直接将密码直接复制到剪贴板上,而不是在终端上输入,请使用以下更安全的命令,它会在 45 秒后自动清除密码。

$ pass -c eMail/[email protected]
Copied eMail/[email protected] to clipboard. Will clear in 45 seconds.

生成一个新密码

如果你想生成一些比较难以猜测的密码用于代替原有的奇怪密码,可以通过其内部的 pwgen 功能来实现。

$ pass generate eMail/[email protected] 15
An entry already exists for eMail/[email protected]. Overwrite it? [y/N] y
The generated password for eMail/[email protected] is:
y!NZ<%T)5Iwym_S

生成没有符号的密码。

$ pass generate eMail/[email protected] 15 -n
An entry already exists for eMail/[email protected]. Overwrite it? [y/N] y
The generated password for eMail/[email protected] is:
TP9ACLyzUZUwBwO

编辑现有的密码

使用编辑器插入新密码或编辑现有密码。 当你运行下面的命令时,将会在包含密码的文本编辑器中打开文件 /dev/shm/pass.wUyGth1Hv0rnh/[email protected]。 只需在其中添加新密码,然后保存并退出即可。

$ pass edit eMail/[email protected]

File: /dev/shm/pass.wUyGth1Hv0rnh/[email protected]                                                                   
TP9ACLyzUZUwBwO

移除密码

删除现有密码。 它将从 ~/.password-store 中删除包含 .gpg 的条目。

$ pass rm eMail/[email protected]
Are you sure you would like to delete eMail/[email protected]? [y/N] y
removed '/home/magi/.password-store/eMail/[email protected]'

多选项功能

要保存详细信息,如 URL、用户名、密码、引脚等信息,可以使用以下格式。 首先确保你要将第一项设置为密码,因为它用于在使用剪贴板选项时将第一行复制为密码,以及后续行中的附加信息。

$ pass insert eMail/[email protected] -m
Enter contents of eMail/[email protected] and press Ctrl+D when finished:

H3$%hbhYT
URL : http://www.2daygeek.com
Info : Linux Tips & Tricks
Ftp User : 2g

(题图:Pixabay, CC0)


via: http://www.2daygeek.com/pass-command-line-password-manager-linux/

作者:2DAYGEEK 译者:chenxinlong 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

AWS 作为全球首屈一指的云服务商,无论是在服务上,还是在技术上,均引领了云技术方面的发展。在 AWS 上,有很多前沿技术的应用,我们特地收集整理了一些 AWS 技术方面的精华文章,分享给您。

数据库

  1. 数据库迁移服务 DMS——手把手教你玩转 MongoDB 到 DynamoDB 之间数据库迁移
  2. 让你的数据库流动起来 – 利用 MySQL Binlog 实现流式实时分析架构
  3. 破解谷堆悖论:轻松搞定 RDS MySQL 到 Redshift 的数据同步
  4. 使用 Oracle Data Pump 将数据库迁移到 AWS 的 RDS Oracle 数据库
  5. 使用 DMS 迁移 Oracle 数据库
  6. 将 Oracle 数据库迁移到 AWS 云的方法
  7. 使用 DMT 工具迁移北京区域的数据库
  8. 手把手教你调校 AWS PB 级数据仓库
  9. Amazon DynamoDB 让海量数据管理变为可能
  10. Mycat:轻松实现百亿级大表分布式存储与秒级并行查询

存储

  1. EBS 新功能:块存储调整超 Easy,24×7不停机!
  2. AWS 文件存储网关初体验
  3. 利用 S3fs 在 Amazon EC2 Linux 实例上挂载 S3 存储桶
  4. 客户端直连 S3 实现分片续传的思路与实践
  5. 如何使用 AWS 命令行分段上传大文件
  6. 乐高君倾情出演:三分钟教会你如何使用 Snowmobile

无服务器

  1. 深入 Serverless—让Lambda 和 API Gateway支持二进制数据
  2. 带您玩转 Lambda,轻松构建 Serverless 后台!
  3. 在 AWS 上构建无服务器的分析系统
  4. 如何在 1 个小时之内轻松构建一个 Serverless 实时数据分析平台

软件开发

  1. 云端开发工具 AWS CodeStar 快速入门
  2. 分分钟启动 AWS 应用程序开发 | AWS CodeStar 介绍
  3. 新上线!AWS CodeDeploy 自动部署初相识
  4. AWS Kinesis 的 Javascript 交互方法

网络服务

  1. 在 VPC 中自建基于 BIND 的 DNS 服务器
  2. AWS 上 NAT 的那点事
  3. 基于 AWS 平台跳板机配置
  4. 使用 Docker 封装 IPSec 网关并实现与 AWS VPC 的动态 VPN 连接
  5. 大家热聊的 VPC,大咖给你讲清楚
  6. 防盗图利器:AWS WAF – Web 应用程序防火墙初体验
  7. 想了解 Amazon ECS?这篇文章就够了!
  8. 使用 AWS ALB 实现基于主机名的路由分发

大数据与人工智能

  1. 利用 Amazon Redshift 构建新一代数据分析 BI 系统
  2. Redshift 又添新功能:让用户直接查询 S3 中的海量数据而无需复制到本地
  3. 如何使用 Apache Mahout 在 Amazon Elastic MapReduce 上构建推荐系统
  4. 手把手教你使用 Amazon EMR 进行交互式数据查询
  5. 巧用 Amazon EMR 节省数据分析成本
  6. 用 50 行代码和人工智能增强 MacOS 功能!
  7. 如何在 AWS 上安装使用分布式 TensorFlow
  8. 分布式神经网络框架 CaffeOnSpark 在 AWS 上的部署过程
  9. 程序员的深度学习入门指南

其它

  1. 通过 AWS Config 管理 AWS 服务配置
  2. 云迁移的 21 个最佳实践
  3. 使用 AWS Lambda 和 Amazon DynamoDB 实现 CloudFormation 模板的动态管理
  4. DAX - DynamoDB 集成全托管的内存缓存,轻松搞定读取负载!
  5. CrowdTangle 经验谈:如何立足 AWS 构建 SaaS 解决方案
  6. 如何灵活地调整 Amazon EC2 的 IAM 角色?
  7. 使用 Amazon CloudFront 签名 URL+S3 实现私有内容发布12
  8. 管理者如何授权?通过 AWS 目录服务管理 AWS 资源
  9. AWS Limit Monitoring:书到用时方恨少,资源提限需趁早!
  10. Elastic GPU:更灵活高效的选择
  11. 全球首创!Amazon EC2 F1 实例权威解读
  12. Amazon Polly:你打字,我说话!
  13. Amazon Lex 快速上手
  14. Amazon Rekognition 快速入门
  15. 利用 CloudWatch 搭建无人值守的监控预警平台
  16. 一键搞定云端网络环境,让您轻松迁移至 AWS!
  17. CloudFront 常见错误配置及解决方法
  18. CloudWatch Events 监控您应用的安全
  19. 专线直连 AWS 建立混合 IT 环境实务指南
  20. 将 VMware 中的 Ubuntu 12.04 映像导入成 Amazon EC2 AMI
  21. 手把手教你在 FPGA 实例上运行“Hello World”

还想看到更多技术分享,深入了解 AWS 最前沿的技术发展?

现在有机会了!

不要犹豫了,马上点此免费报名参加

7 月 26 日,不要错过。

我们中的大部分人都会经常忘记清理 Linux 系统中的垃圾文件,这会导致我们的系统空间不足。

一般情况下我们不得不按标准的程序来释放 Linux 发行版中的空间(删除发行版缓存、系统日志、应用程序缓存和垃圾邮件),但如果我们每次以手动方式执行相同的过程,那么会花费大量的时间和困难。

在 Linux 的应用程序中,可以使这个任务更容易。今天我们将教你如何使用 Ubuntu Cleaner,它衍生自 Ubuntu Tweak 中的 Janitor 模块。

Ubuntu Cleaner 是一个可以简化你清理 Ubuntu 系统的工具。如我们所知道,Ubuntu Tweak 是帮助我们调整 Ubuntu 及其衍生发行版的最佳实用程序之一。但由于它的主要开发人员没有时间维护它,因此已被弃用。

建议阅读:

因为许多用户在最新版本中仍使用 Ubuntu Tweak 这个工具(因为他们不想离开这个工具),所以 Ubuntu Cleaner 的开发人员从 Ubuntu Tweak 工具中复刻了 janitor 模块,并将这个有用的功能带回 Ubuntu 社区,并命名为 Ubuntu Cleaner。它也成为了 Ubuntu 多年来最受欢迎的实用程序之一。

建议阅读:

我猜所有那些怀念 Ubuntu Tweak 的人都会因为有 Ubuntu Cleaner 而感到高兴,因为它是从 janitor 模块衍生出来的。

Ubuntu Cleaner 将删除 Ubuntu 及其衍生发行版中的以下垃圾文件:

  • 应用缓存 (浏览器缓存)
  • 缩略图缓存
  • Apt 缓存
  • 旧的内核
  • 包的配置文件
  • 不需要的包

如何安装 Ubuntu Cleaner

因为开发者提供官方 PPA ,我们可以通过 PPA 轻松地将 Ubuntu Cleaner 安装到 Ubuntu 及其衍生发行版。 Ubuntu Cleaner 目前支持 Ubuntu 14.04 LTS 和 Ubuntu 16.04 LTS。

$ sudo add-apt-repository ppa:gerardpuig/ppa
$ sudo apt update
$ sudo apt install ubuntu-cleaner

如何使用 Ubuntu Cleaner

从主菜单启动 Ubuntu Cleaner ,你可以看到得以下默认界面。

勾选你要清理的文件前面的 “复选框”。 最后点击 “清理” 按钮从系统中删除垃圾文件。

现在我们已经成功清除了系统中的垃圾。


via: http://www.2daygeek.com/ubuntu-cleaner-system-cleaner-ubuntu-tweak-alternative-janitor/#

作者:2DAYGEEK 译者:chenxinlong 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出