分类 技术 下的文章

在 Linux 机器中添加磁盘的逐步过程。

本文将向你介绍在 Linux 机器中添加新磁盘的步骤。将原始磁盘添加到 Linux 机器可能非常依赖于你所拥有的服务器类型,但是一旦将磁盘提供给机器,将其添加到挂载点的过程几乎相同。

目标:向服务器添加新的 10GB 磁盘,并使用 lvm 和新创建的卷组创建 5GB 装载点。

向 Linux 机器添加原始磁盘

如果你使用的是 AWS EC2 Linux 服务器,可以 按照以下步骤 添加原始磁盘。如果使用的是 VMware Linux VM,那么需要按照不同的步骤来添加磁盘。如果你正在运行物理机架设备/刀片服务器,那么添加磁盘将是一项物理任务。

一旦磁盘物理/虚拟地连接到 Linux 机器上,它将被内核识别,就可以开始了。

识别 Linux 最新添加的磁盘

原始磁盘连接后,需要让内核去 扫描新磁盘。在新版中,它主要是由内核自动完成。

第一件事是在内核中识别新添加的磁盘及其名称。实现这一点的方法有很多,以下作少量列举:

  • 可以在添加/扫描磁盘前后观察 lsblk 输出,以获取新的磁盘名。
  • 检查 /dev 文件系统中新创建的磁盘文件。匹配文件和磁盘添加时间的时间戳。
  • 观察 fdisk-l 添加/扫描磁盘前后的输出,以获取新的磁盘名。

在本示例中,我使用的是 AWS EC2 服务器,向服务器添加了 5GB 磁盘。我的 lsblk 输出如下:

[root@kerneltalks ~]# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  10G  0 disk
├─xvda1 202:1    0   1M  0 part
└─xvda2 202:2    0  10G  0 part /
xvdf    202:80   0  10G  0 disk

可以看到 xvdf 是新添加的磁盘。完整路径是 /dev/xvdf

在 LVM 中添加新磁盘

我们这里使用 LVM,因为它是 Linux 平台上广泛使用的非常灵活的卷管理器。确认 lvm 或 lvm2 软件包已经安装在系统上。如未安装,请 安装 lvm/lvm2 程序包

现在,我们将在逻辑卷管理器中添加这个原始磁盘,并从中创建 10GB 的挂接点。所用到的命令如下:

如果要将磁盘添加到现有挂接点,并使用其空间来扩展挂接点 ,则 vgcreate 应替换为 vgextend

会话示例输出如下:

[root@kerneltalks ~]# pvcreate /dev/xvdf
  Physical volume "/dev/xvdf" successfully created.
[root@kerneltalks ~]# vgcreate vgdata /dev/xvdf
  Volume group "vgdata" successfully created
[root@kerneltalks ~]# lvcreate -L 5G -n lvdata vgdata
  Logical volume "lvdata" created.

现在,已完成逻辑卷创建。你需要使用所选的文件系统格式化它,并将其挂载。在这里选择 ext4 文件系统,并使用 mkfs.ext4 进行格式化。

[root@kerneltalks ~]# mkfs.ext4 /dev/vgdata/lvdata
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736
 
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

在挂载点上从新磁盘挂载卷

使用 mount 命令,在 /data 安装点上安装已创建并格式化的 5GB 逻辑卷。

[root@kerneltalks ~]# mount /dev/vgdata/lvdata /data
[root@kerneltalks ~]# df -Ph /data
Filesystem                 Size  Used Avail Use% Mounted on
/dev/mapper/vgdata-lvdata  4.8G   20M  4.6G   1% /data

使用 df 命令验证挂载点。如上所述,你都完成了!你可以在 /etc/fstab 中添加一个条目,以便在重新启动时保持此装载。

你已将 10GB 磁盘连接到 Linux 计算机,并创建了 5GB 挂载点!


via: https://kerneltalks.com/hardware-config/how-to-add-new-disk-in-linux/

作者:kerneltalks 选题:lujun9972 译者:luckyele 校对:wxy

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

最近我们在网站上发表过一篇关于 检查密码复杂性/强度和评分 的文章。它可以帮助你检查你的密码的强度和评分。

我们可以手工创建我们需要的密码。但如果你想要为多个用户或服务器生成密码,解决方案是什么呢?

是的,Linux 中有许多可用的工具能满足这个需求。本文中我将会介绍五种最好的密码生成器。

这些工具可以为你生成高强度随机密码。如果你想要为多个用户和服务器更新密码,请继续读下去。

这些工具易于使用,这也是我喜欢用它们的原因。默认情况下它们会生成一个足够健壮的密码,你也可以通过使用其他可用的选项来生成一个超强的密码。

它会帮助你生成符合下列要求的超强密码。密码长度至少有 12-15 个字符,包括字母(大写及小写),数字及特殊符号。

工具如下:

  • pwgen:生成易于人类记忆并且尽可能安全的密码。
  • openssl:是一个用来从 shell 中调用 OpenSSL 加密库提供的多种密码学函数的命令行工具。
  • gpg:OpenPGP 加密/签名工具。
  • mkpasswd:生成新密码,可以选择直接设置给一名用户。
  • makepasswd:使用 /dev/urandom 生成真随机密码,比起好记它更重视安全性。
  • /dev/urandom 文件:两个特殊的字符文件 /dev/random/dev/urandom (自 Linux 1.3.30 起出现)提供了内核随机数生成器的接口。
  • md5sum:是一个用来计算及校验 128 位 MD5 哈希的程序。
  • sha256sum:被设计用来使用 SHA-256 算法(SHA-2 系列,摘要长度为 256 位)校验数据完整性。
  • sha1pass:生成一个 SHA1 密码哈希。在命令缺少盐值的情况下,将会生成一个随机的盐值向量。

怎么用 pwgen 命令在 linux 下生成一个随机的强壮密码?

pwgen 程序生成易于人类记忆并且尽可能安全的密码。

易于人类记忆的密码永远都不会像完全随机的密码一样安全。

使用 -s 选项来生成完全随机,难于记忆的密码。由于我们记不住,这些密码应该只用于机器。

在 Fedora 系统中,使用 DNF 命令 来安装 pwgen

$ sudo dnf install pwgen

在 Debian/Ubuntu 系统中,使用 APT-GET 命令APT 命令 来安装 pwgen

$ sudo apt install pwgen

在 Arch Linux 系统中,使用 Pacman 命令 来安装 pwgen

$ sudo pacman -S pwgen

在 RHEL/CentOS 系统中,使用 YUM 命令 来安装 pwgen

$ sudo yum install pwgen

在 openSUSE Leap 系统中,使用 Zypper 命令 来安装 pwgen

$ sudo zypper install pwgen

在 Linux 下如何使用 pwgen 命令?

使用方法非常简单直接。使用下列示例中更适合你的那种。默认情况下,它会生成一个方便记忆的密码。

想要这样做,只要在你的终端中运行 pwgen 命令。将会一下生成160个密码以8列20行打印出来。

$ pwgen
ameiK2oo aibi3Cha EPium0Ie aisoh1Ee Nidee9ae uNga0Bee uPh9ieM1 ahn1ooNg
oc5ooTea tai7eKid tae2yieS hiecaiR8 wohY2Ohk Uab2maed heC4aXoh Ob6Nieso
Shaeriu3 uy9Juk5u hoht7Doo Fah6yah3 faz9Jeew eKiek4ju as0Xuosh Eiwo4epo
oot8teeZ Ui1yoohi Aechae7A Ohdi2ael cae5Thoh Au1aeTei ais0aiC2 Cai2quin
Oox9ohz4 neev0Che ahza8AQu Ahz7eica meiBeeW0 Av3bo7ah quoiTu3f taeNg3ae
Aiko7Aiz SheiGh8E aesaeSh7 haet6Loo AeTel3oN Ath7zeer IeYah4ie UG3ootha
Ohch9Och Phuap6su iel5Xu7s diqui7Bu ieF2dier eeluHa1u Thagei0i Ceeth3oh
OCei1ahj zei2aiYo Jahgh1ia ooqu1Cej eez2aiPo Wahd5soo noo7Mei9 Hie5ashe
Uith4Or2 Xie3uh2b fuF9Eilu eiN2sha9 zae2YaSh oGh5ephi ohvao4Ae aixu6aeM
fo4Ierah iephei6A hae9eeGa eiBeiY3g Aic8Kee9 he8AheCh ohM4bid9 eemae3Zu
eesh2EiM cheiGa4j PooV2vii ahpeeg5E aezauX2c Xe7aethu Ahvaph7a Joh2heec
Ii5EeShi aij7Uo8e ooy2Ahth mieKe2ni eiQuu8fe giedaQu0 eiPhob3E oox1uo2U
eehia4Hu ga9Ahw0a ohxuZei7 eV4OoXio Kid2wu1n ku4Ahf5s uigh8uQu AhWoh0po
vo1Eeb2u Ahth7ve5 ieje4eiL ieci1Ach Meephie9 iephieY8 Eesoom7u eakai2Bo
uo8Ieche Zai3aev5 aGhahf0E Wowoo5th Oraeb0ah Gah3nah0 ieGhah0p aeCh0OhJ
ahQu2feZ ahQu0gah foik7Ush cei1Wai1 Aivi3ooY eephei5U MooZae3O quooRoh7
aequae5U pae6Ceiv eizahF1k ohmi7ETa ahyaeK1N Mohw2no8 ooc8Oone coo7Ieve
eePhei9h Weequ8eV Vie4iezu neeMiim4 ie6aiZoh Queegh2E shahwi3N Inichie8
Sid1aeji mohj4Ko7 lieDi0pe Zeemah6a thuevu2E phi4Ohsh paiKeix1 ooz1Ceph
ahV4yore ue2laePh fu1eThui qui7aePh Fahth1nu ohk9puLo aiBeez0b Neengai5

生成安全的随机密码,使用 pwgen 命令的 -s 选项。

$ pwgen -s
CU75lgZd 7HzzKgtA 2ktBJDpR F6XJVhBs UjAm3bNL zO7Dw7JJ pxn8fUvp Ka3lLilG
ywJX7iJl D9ajxb6N 78c1HOg2 g8vtWCra Jp6pBGBw oYuev9Vl gbA6gHV8 G6XQoVO5
uQN98IU4 50GgQfrX FrTsou2t YQorO4x6 UGer8Yi2 O7DB5nw1 1ax370UR 1xVRPkA1
RVaGDr2i Nt11ekUd 9Vm3D244 ck8Lnpd0 SjDt8uWn 5ERT4tf8 4EONFzyY Jc6T83jg
WZa6bKPW H4HMo1YU bsDDRik3 gBwV7LOW 9H1QRQ4x 3Ak7RcSe IJu2RBF9 e508xrLC
SzTrW191 AslxDa6E IkWWov2b iOb6EmTy qHt82OwG 5ZFO7B53 97zmjOPu A4KZuhYV
uQpoJR4D 0eKyOiUr Rz96smeO 3HTABu3N 6W0VmEls uPsp5zpw 8UD3VkMG YTct6Rd4
VKo0cVmq E07ZX7j9 kQSlvA69 Nm3fpv3i xWvF2xMu yEfcw8uA oQGVX3l9 grTzx7Xj
s4GVEYtM uJl5sYMe n3icRPiY ED3Mup4B k3M9KHI7 IkxqoSM0 dt2cxmMU yb2tUkut
2Q9wGZQx 8Rpo11s9 I13siOHu 7GV64Fjv 3VONzD8i SCDfVD3F oiPTx239 6BQakoiJ
XUEokiC4 ybL7VGmL el2RfvWk zKc7CLcE 3FqNBSyA NjDWrvZ5 KI3NSX4h VFyo6VPr
h4q3XeqZ FDYMoX6f uTU5ZzU3 6u4ob4Ep wiYPt05n CZga66qh upzH6Z9y RuVcqbe8
taQv11hq 1xsY67a8 EVo9GLXA FCaDLGb1 bZyh0YN8 0nTKo0Qy RRVUwn9t DuU8mwwv
x96LWpCb tFLz3fBG dNb4gCKf n6VYcOiH 1ep6QYFZ x8kaJtrY 56PDWuW6 1R0If4kV
2XK0NLQK 4XQqhycl Ip08cn6c Bnx9z2Bz 7gjGlON7 CJxLR1U4 mqMwir3j ovGXWu0z
MfDjk5m8 4KwM9SAN oz0fZ5eo 5m8iRtco oP5BpLh0 Z5kvwr1W f34O2O43 hXao1Sp8
tKoG5VNI f13fuYvm BQQn8MD3 bmFSf6Mf Z4Y0o17U jT4wO1DG cz2clBES Lr4B3qIY
ArKQRND6 8xnh4oIs nayiK2zG yWvQCV3v AFPlHSB8 zfx5bnaL t5lFbenk F2dIeBr4
C6RqDQMy gKt28c9O ZCi0tQKE 0Ekdjh3P ox2vWOMI 14XF4gwc nYA0L6tV rRN3lekn
lmwZNjz1 4ovmJAr7 shPl9o5f FFsuNwj0 F2eVkqGi 7gw277RZ nYE7gCLl JDn05S5N

假设你想要生成 5 个 14 字符长的密码,方法如下:

$ pwgen -s 14 5
7YxUwDyfxGVTYD em2NT6FceXjPfT u8jlrljbrclcTi IruIX3Xu0TFXRr X8M9cB6wKNot1e

如果你真的想要生成 20 个超强随机密码,方法如下:

$ pwgen -cnys 14 20
mQ3E=vfGfZ,5[B #zmj{i5|ZS){jg Ht_8i7OqJ%N`~2 443fa5iJ\W-L?] ?Qs$o=vz2vgQBR
^'Ry0Az|J9p2+0 t2oA/n7U_'|QRx EsX*%_(4./QCRJ ACr-,8yF9&eM[* !Xz1C'bw?tv50o
8hfv-fK(VxwQGS q!qj?sD7Xmkb7^ N#Zp\_Y2kr%!)~ 4*pwYs{bq]Hh&Y |4u=-Q1!jS~8=;
]{$N#FPX1L2B{h I|01fcK.z?QTz" l~]JD_,W%5bp.E +i2=D3;BQ}p+$I n.a3,.D3VQ3~&i

如何在 Linux 下使用 openssl 命令生成随机强密码?

openssl 是一个用来从 shell 中调用 OpenSSL 加密库提供的多种密码学函数的命令行工具。

像下面这样运行 openssl 命令可以生成一个 14 字符长的随机强密码。

$ openssl rand -base64 14
WjzyDqdkWf3e53tJw/c=

如果你想要生成 10 个 14 字符长的随机强密码,将 openssl 命令与 for 循环结合起来使用。

$ for pw in {1..10}; do openssl rand -base64 14; done
6i0hgHDBi3ohZ9Mil8I=
gtn+y1bVFJFanpJqWaA=
rYu+wy+0nwLf5lk7TBA=
xrdNGykIzxaKDiLF2Bw=
cltejRkDPdFPC/zI0Pg=
G6aroK6d4xVVYFTrZGs=
jJEnFoOk1+UTSx/wJrY=
TFxVjBmLx9aivXB3yxE=
oQtOLPwTuO8df7dIv9I=
ktpBpCSQFOD+5kIIe7Y=

如何在 Linux 下使用 gpg 命令生成随机强密码?

gpg 是 Gnu Privacy Guard (GnuPG) 中的 OpenPGP 实现部分。它是一个提供 OpenPGP 标准的数字加密与签名服务的工具。gpg 具有完整的密钥管理功能和其他完整 OpenPGP 实现应该具备的全部功能。

下面这样执行 gpg 命令来生成一个 14 字符长的随机强密码。

$ gpg --gen-random --armor 1 14
or
$ gpg2 --gen-random --armor 1 14
jq1mtY4gBa6gIuJrggM=

如果想要使用 gpg 生成 10 个 14 字符长的随机强密码,像下面这样使用 for 循环。

$ for pw in {1..10}; do gpg --gen-random --armor 1 14; done
or
$ for pw in {1..10}; do gpg2 --gen-random --armor 1 14; done
F5ZzLSUMet2kefG6Ssc=
8hh7BFNs8Qu0cnrvHrY=
B+PEt28CosR5xO05/sQ=
m21bfx6UG1cBDzVGKcE=
wALosRXnBgmOC6+++xU=
TGpjT5xRxo/zFq/lNeg=
ggsKxVgpB/3aSOY15W4=
iUlezWxL626CPc9omTI=
pYb7xQwI1NTlM2rxaCg=
eJjhtA6oHhBrUpLY4fM=

如何在 Linux 下使用 mkpasswd 命令生成随机强密码?

mkpasswd 生成密码并可以自动将其为用户设置。不加任何参数的情况下,mkpasswd 返回一个新的密码。它是 expect 软件包的一部分,所以想要使用 mkpasswd 命令,你需要安装 expect 软件包。

在 Fedora 系统中,使用 DNF 命令 来安装 mkpasswd

$ sudo dnf install expect

在 Debian/Ubuntu 系统中,使用 APT-GET 命令APT 命令 来安装 mkpasswd

$ sudo apt install expect

在 Arch Linux 系统中,使用 Pacman 命令 来安装 mkpasswd

$ sudo pacman -S expect

在 RHEL/CentOS 系统中,使用 YUM 命令 来安装 mkpasswd

$ sudo yum install expect

在 openSUSE Leap 系统中,使用 Zypper 命令 来安装 mkpasswd

$ sudo zypper install expect

在终端中执行 mkpasswd 命令来生成一个随机密码。

$ mkpasswd
37_slQepD

像下面这样执行 mkpasswd 命令可以生成一个 14 字符长的随机强密码。

$ mkpasswd -l 14
W1qP1uv=lhghgh

像下面这样执行 mkpasswd 命令 来生成一个 14 字符长,包含大小写字母、数字和特殊字符的随机强密码。

$ mkpasswd -l 14 -d 3 -C 3 -s 3
3aad!bMWG49"t,

如果你想要生成 10 个 14 字符长的随机强密码(包括大小写字母、数字和特殊字符),使用 for 循环和 mkpasswd 命令。

$ for pw in {1..10}; do mkpasswd -l 14 -d 3 -C 3 -s 3; done
zmSwP[q9;P1r6[
E42zcvzM"i3%B\
8}1#[email protected]
0X:zB(mmU22?nj
0sqqL44M}ko(O^
43tQ(.6jG;ceRq
-jB6cp3x1GZ$e=
$of?Rj9kb2N(1J
9HCf,nn#gjO79^
Tu9m56+Ev_Yso(

如何在 Linux 下使用 makepasswd 命令生成随机强密码?

makepasswd 使用 /dev/urandom 生成真随机密码,与易于记忆相比它更注重安全性。它也可以加密命令行中给出的明文密码。

在终端中执行 makepasswd 命令来生成一个随机密码。

$ makepasswd
HdCJafVaN

在终端中像下面这样执行 makepasswd 命令来生成 14 字符长的随机强密码。

$ makepasswd --chars 14
HxJDv5quavrqmU

像下面这样执行 makepasswd 来生成 10 个 14 字符长的随机强密码。

$ makepasswd --chars 14 --count 10
TqmKVWnRGeoVNr
mPV2P98hLRUsai
MhMXPwyzYi2RLo
dxMGgLmoFpYivi
8p0G7JvJjd6qUP
7SmX95MiJcQauV
KWzrh5npAjvNmL
oHPKdq1uA9tU85
V1su9GjU2oIGiQ
M2TMCEoahzLNYC

如何在 Linux 系统中使用多个命令生成随机强密码?

如果你还在寻找其他的方案,下面的工具也可以用来在 Linux 中生成随机密码。

使用 md5sum:它是一个用来计算及校验 128 位 MD5 哈希的程序。

$ date | md5sum
9baf96fb6e8cbd99601d97a5c3acc2c4 -

使用 /dev/urandom: 两个特殊的字符文件 /dev/random/dev/urandom (自 Linux 1.3.30 起出现)提供了内核随机数生成器的接口。/dev/random 的主设备号为 1,次设备号为 8。/dev/urandom 主设备号为 1,次设备号为 9。

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 14
15LQB9J84Btnzz

使用 sha256sum:它被设计用来使用 SHA-256 算法(SHA-2 系列,摘要长度为 256 位)校验数据完整性。

$ date | sha256sum
a114ae5c458ae0d366e1b673d558d921bb937e568d9329b525cf32290478826a -

使用 sha1pass:它生成一个 SHA1 密码哈希。在命令缺少盐值的情况下,将会生成一个随机的盐值向量。

$ sha1pass
$4$9+JvykOv$e7U0jMJL2yBOL+RVa2Eke8SETEo$

via: https://www.2daygeek.com/5-ways-to-generate-a-random-strong-password-in-linux-terminal/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:leommx 校对:wxy

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

使用自托管的开源字体来定制你的网页。

字体对许多计算机用户来说可能都是很神秘的东西。举个例子,你在制作好一张很酷的传单之后,你需要将它送到某个地方去打印,结果发现,你设计的所有字体都变成了 Arial,这多半是因为打印店没用安装你设计用到的那些字体。不过,我们仍有很多方法来避免这种情况:你可以将这些使用特定字体的单词转换为路径,你也可以将它封装为 PDF,或是把开源字体封装到你的设计文件中,或者至少列出所需字体。不过,我们总会忘记一些事情,所以这仍是一个问题。

Web 上也有类似的问题。如果你对 CSS 有所了解,你可能会见过这种声明:

h1 { font-family: "Times New Roman", Times, serif; }

这是设计师正在尝试定义网站使用要用到的特定字体,如果用户没有安装 Times New Roman 这个字体,便会回落到另一个字体;如果用户也没有安装 Times 这个字体,便再次回落。它比使用图片而不是文本更好一些,但是在没有字体托管的情况下,这仍是一种棘手且不雅观的方法。不过,在早期的互联网时代,我们不得不这样做。

在线字体

在线字体的登场,把字体管理从客户端搬上了服务端。如今网页上的字体通常由服务器为客户端渲染,而不是要求浏览器从用户的系统中查找字体。谷歌和其它供应商托管了许多开源字体,网站设计师们可以很轻松的用 CSS 来引用它们。

不过,问题是,引用这些字体并不是不花费任何代价的。虽然引用它们免费,但是像谷歌这样的巨头喜欢跟踪那些引用它们资源的网站,其中就包括了字体资源。如果你不想你的网站帮谷歌记录每个人的活动,你可以自己托管在线字体。别觉得这很难,它其实是很简单的,大概流程就是上传字体到你的主机,再使用一个简单的 CSS 便可完成。这样做还有个好处,你的网站能更快地加载,因为它会在加载每个页面的时候进行更少的外部调用。

自托管在线字体

首先,你需要一个开源字体。如果你没有了解过那些令人费解的软件协议,你可能会感到很疑惑,特别是很多字体看起来都是免费的。我们中应该很少有人有字体付费意识,但是他们却在电脑上安装了一些高价的字体。不过,由于授权协议,它使得你的电脑也许带着一些 法律上不允许复制和再分发 的字体。像 Arial、Verdana、Calibri、Georgia、Impact、Lucida 和 Lucida Grande、Times 和 Times New Roman、Trebuchet、Geneva 以及其它的很多字体都是被微软、苹果和 Adobe 这种大公司所拥有的。如果你购买了一台预装了 Windows 或 macOS 的电脑,你就获得了使用这些字体的权利,但是你并没有拥有那些字体,也没有被许可上传它们至服务器(除非额外说明)。

幸运的事,开源热潮在很久以前就席卷了字体界。然后就有了许多优秀的开源字体的合集和项目,比如 The League of Moveable TypeFont Library 以及 Omnibus Type,甚至还有一些来自 GoogleAdobe 的字体。

常见的字体格式有 TTF、OTF、WOFF、EOT 等。因为 Sorts Mill Goudy 发行过 WOFF Web Open Font Format (互联网开放字体格式,Mozilla 参与了部分开发)版本,所以下文中我会用它来做例子。当然,其它字体的方法也是一样的。

假设你想在你的网站上使用 Sorts Mill Goudy 这个字体:

1、将字体文件 GoudyStM-webfont.woff 上传至你的服务器:

scp GoudyStM-webfont.woff [email protected]:~/www/fonts/

你的主机可能带有像 cPanel 这样的图形化工具,通过它们上传也是一样的。

2、在你网站的 CSS 文件中,添加 @font-face 语句,添加后应该和这个差不多:

@font-face { 
  font-family: "titlefont";
  src: url("../fonts/GoudyStM-webfont.woff"); 
}

font-family 的值是你来决定的。这是一个易于理解的名字,它用于放在使用字体名的地方。我在这里使用 “titlefont” 作为例子,是因为我希望它被用来显示标题字体。你也可以使用 “officialfont” 和 “myfont” 这样的名字。

src 值是你字体文件的路径。这是你服务器上字体的路径。在这里,我用 fonts 目录来作为示例,它和 css 在一个文件夹里。你服务器的文件结构可能和我的不一样,所以你需要调整一下这个路径。记住一点,一个点意味着工作目录,两个点则代表父目录

3、现在,你已经定义了字体的名字和目录,你可以在任何指定的 CSS 类或 ID 来调用它了。举个例子,如果你希望以 Sorts Mill Goudy 字体来渲染 <h1>,只需要在 CSS 规则中加入你自己的字体名称:

h1 { font-family: "titlefont", serif; }

现在,你已经成功地托管并使用你自己的字体了。

 title=


via: https://opensource.com/article/19/3/webfonts

作者:Seth Kenlon (Red Hat, Community Moderator) 选题:lujun9972 译者:zhs852 校对:wxy

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

读者们推荐了超过一打的他们喜欢的数据保护解决方案。

最近,我发起了一个 投票,让读者投票选出他们最喜欢的开源备份解决方案。在我们的 版主社区 上,我们提供了六个推荐的解决方案 —— Cronopete、Deja Dup、Rclone、Rdiff-backup、Restic、和 Rsync,而参与的读者也在评论区分享了一些其它的选择。并且读者提供的这 13 个其它的解决方案,(到目前为止)我们要么是没有想到,要么是没有听说过。

到目前为止,最受欢迎的推荐是 BorgBackup。它是一个带有压缩和加密特性以用具有数据去重功能的备份解决方案。它基于 BSD 许可证,支持 Linux、MacOS 和 BSD。

第二个是 UrBackup,它可以做镜像和文件的完整和增量备份;你可以保存整个分区或单个目录。它有 Windows、Linux、和 MacOS 客户端,并且采用 GNU Affero 公共许可证。

第三个是 LuckyBackup;根据其网站介绍,“它是一个易于使用、快速(只传输变化部分,而不是全部数据)、安全(在做任何数据操作之前,先检查所有需要备份的目录,以确保数据安全)、可靠和完全可定制的备份解决方案。它在 GPL 许可证下发行。

Casync 是一个可寻址内容的同步解决方案 —— 它设计用于备份、同步、存储和检索大文件系统的多个相关版本。它使用 GNU Lesser 公共许可证。

Syncthing 是用于在两台计算机之间同步文件。它基于 Mozilla 公共许可证使用,根据其网站介绍,它是安全和私密的。它可以工作于 MacOS、Windows、Linux、FreeBSD、Solaris 和 OpenBSD。

Duplicati 是一个可工作于 Windows、MacOS 和 Linux 上的、并且支持多种标准协议(比如 FTP、SSH、WebDAV 和云服务)、免费的备份解决方案。它的特性是强大的加密功能,并且它使用 GPL 许可证。

Dirvish 是一个基于磁盘的虚拟镜像备份系统,它使用 OSL-3.0 许可证。它要求必须安装有 Rsync、Perl5、SSH。

Bacula 的网站上介绍说:”它是允许系统管理员去管理备份、恢复、和跨网络的不同种类计算机上的多种数据的一套计算机程序“,它支持在 Linux、FreeBSD、Windows、MacOS、OpenBSD 和 Solaris 上运行,并且它的大部分源代码都是基于 AGPLv3 许可证的。

BackupPC 的网站上介绍说:”它是一个高性能的、企业级的、可以备份 Linux、Windows 和 MacOS 系统的 PC 和笔记本电脑上的数据到服务器磁盘上的备份解决方案“。它是基于 GPLv3 许可证的。

Amanda 是一个使用 C 和 Perl 写的备份系统,它允许系统管理员去备份整个网络中的客户端到一台服务器上的磁带、磁盘或基于云的系统。它是由马里兰大学于 1991 年开发并拥有版权,并且它有一个 BSD 式的许可证。

Back in Time 是一个为 Linux 设计的简单的备份实用程序。它提供了命令行和图形用户界面,它们都是用 Python 写的。去执行一个备份,只需要指定存储快照的位置、需要备份的文件夹,和备份频率即可。它使用的是 GPLv2 许可证。

Timeshift 是一个 Linux 上的备份实用程序,它类似于 Windows 上的系统恢复和 MacOS 上的时间胶囊。它的 GitHub 仓库上介绍说:“Timeshift 通过定期递增的文件系统快照来保护你的系统。这些快照可以在日后用于数据恢复,以撤销某些对文件系统的修改。”

Kup 是一个能够帮助用户备份它们的文件到 USB 驱动器上的备份解决方案,但它也可以用于执行网络备份。它的 GitHub 仓库上介绍说:”当插入你的外部硬盘时,Kup 将自动启动并复制你的最新的修改。“

感谢大家在我们的投票中分享你们喜爱的开源备份解决方案!如果还有其它的、没有提到的开源备份解决方案,请在下面的评论区分享它们。


via: https://opensource.com/article/19/3/backup-solutions

作者:Don Watkins 选题:lujun9972 译者:qhwdw 校对:wxy

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

这是我们的《树莓派入门指南》系列的第五篇文章,它探索了帮助孩子们学习编程的一些资源。

无数的学校、图书馆和家庭已经证明,树莓派是让孩子们接触编程的最好方式。在本系列的前四篇文章中,你已经学习了如何去购买安装、和配置一个树莓派。在第五篇文章中,我们将分享一些帮助孩子们使用树莓派编程的入门级资源。

Scratch

Scratch 是让孩子们了解编程基本概念(比如变量、布尔逻辑、循环等等)的一个很好的方式。你在 Raspbian 中就可以找到它,并且在互联网上你可以找到非常多的有关 Scratch 的文章和教程,包括在 Opensource.com 上的 今天的 Scratch 是不是像“上世纪八十年代教孩子学 LOGO 编程”?

Code.org

Code.org 是另一个非常好的教孩子学编程的在线资源。这个组织的使命是让更多的人通过课程、教程和流行的一小时学编程来接触编程。许多学校(包括我五年级的儿子就读的学校)都使用它,让更多的孩子学习编程和计算机科学的概念。

阅读

读书是学习编程的另一个很好的方式。学习如何编程并不需要你会说英语,当然,如果你会英语的话,学习起来将更容易,因为大多数的编程语言都是使用英文关键字去描述命令的。如果你的英语很好,能够轻松地阅读接下来的这个树莓派系列文章,那么你就完全有能力去阅读有关编程的书籍、论坛和其它的出版物。我推荐一本由 Jason Biggs 写的书: 儿童学 Python:非常有趣的 Python 编程入门

Raspberry Jam

另一个让你的孩子进入编程世界的好方法是在聚会中让他与其他人互动。树莓派基金会赞助了一个称为 Raspberry Jams 的活动,让世界各地的孩子和成人共同参与在树莓派上学习。如果你所在的地区没有 Raspberry Jam,基金会有一个指南和其它资源帮你启动一个 Raspberry Jam。

游戏

最后一个(是本文的最后一个,当然还有其它的方式),Minecraft 有一个树莓派版本。 我的世界 Minecraft 已经从一个多玩家的、类似于”数字乐高“这样的游戏,成长为一个任何人都能使用 Python 和其它编程语言去构建我自己的虚拟世界。更多内容查看 Minecraft Pi 入门Minecraft 一小时入门教程

你还有教孩子用树莓派学编程的珍藏资源吗?请在下面的评论区共享出来吧。


via: https://opensource.com/article/19/3/teach-kids-program-raspberry-pi

作者:Anderson Silva 选题:lujun9972 译者:qhwdw 校对:wxy

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

Logoly.Pro 是一个在线的 PornHub 风格 Logo 生成工具,可以帮助你快速生成类似 PornHub 风格的 Logo。

目前项目已经上线:https://logoly.pro/代码也已开源:https://github.com/bestony/logoly

欢迎各位前来试用 && 求 Star !


昨晚,我花了 5 个小时,在肝一个项目,如今,让它成功上线,我便向大家介绍一下它。

突发的灵感

我自己平时经常要做一些业余项目,在做业余项目的时候,就涉及到了要做 Logo ,但是作为一个没有设计感的程序员,在做 Logo 时总是会做出一些很丑的 Logo ,于是痛定思痛,想想有没有什么有用的工具可以帮助我生成好看的 Logo。对于我来说,也不需要太过复杂,能够满足我自己的要求就行。

那么这就要求这个 Logo 有一些特点

  1. 设计简单:很多带吉祥物的 Logo 就不适合我了,因为要去准备吉祥物的图片。
  2. 辨识度高:单纯的简单并没有太多的用处, Logo 需要让用户能够记住

经过一番筛选,PornHub 的 Logo 进入到我的视线。

设计产品

在开发之前,我先进行了产品方面的考虑,看看我需要做哪些功能,哪些不做,最终得到了这样一个清单:

要做的项目

  1. 项目使用 Vue 开发,因为可以快速上线
  2. 项目使用 Netlify 部署,这样就可以使用自己的域名,并使用 SSL,速度还要比 Github Pages 快一些。
  3. 项目应当支持自定义文字,这个是最基础的功能需求,必须要做的。
  4. 项目应当支持自定义颜色,毕竟可能有其他的方面,需要类似风格,但是不同的颜色的 Logo
  5. 项目应当支持自定义文字大小,毕竟我导出的是 PNG,如果不能自定义大小,大家可能会很困扰。
  6. 项目应当加入 Google Analytics,加入统计,就知道有多少人用过我的项目了,也是一种成就感。
  7. 项目应当加入我的个人信息,用来给我自己推广,顺便刷一波脸。
  8. 社会化分享,应当有个方便的分享方法,这样才能够更好的帮助项目在前期成长。

不做的项目

  1. 自定义字体:原汁原味的 PH 风格,怎能瞎改字体呢?
  2. 导出 JPG: 有了透明背景的 PNG,不透明的 JPG 的需求就没那么大了。

后续迭代实现的

  1. 其他简单的 Logo:比如 Youtube.

设计布局

在完成了产品的功能,我又进行了布局的设计,这次我用的是 Adobe XD,最近很喜欢用这个工具来设计产品的界面,非常的方便。最终设计完成的版本如下:

设计完成后,就要开始准备开始编码了。

找库

一开始,我考虑使用一些 UI 框架,不过,由于一开始没有引入 UI 框架,快写完了才发现基本不需要组件库,干脆将错就错,这样用了。

在完成了基本的界面后,就是涉及到的一些库的使用了,这里要感谢前端生态圈的繁荣,我从 PicasCarbon 的源码里找到了我想要用的库。

  • dom-to-image:将 Dom 元素转换成为图片,以备下载。
  • file-save:在 Vue 组件里调用系统的下载接口,下载图片

其他我用到的库还有

  • v-tooltips:用户提醒,之前用的 Vue-Tour,但是跳跃感太强了,所以弃用了。
  • vue-analytics:Vue 下的 Google Analytics 工具,可以很方便的调用 GA 进行统计。

上线

在完成了开发后,将代码上传到 Github,准备部署。

在前面提到,我考虑用 Netlify 进行部署,这里非常方便,在 Netlify 上直接创建项目,选择你的项目,然后填入命令即可。

并配置一下域名,将自己的域名设置为主域名:

稍等一会,就会自动为你的域名签注 Let’s Encrypt 的证书。

最后

关于这个项目的故事,我已经说完了所有我能想到的了,接下来,就是你的提问时间了,欢迎你针对项目对我提问,无论是产品、设计、编码,都可以~

希望大家能够给这个项目一个 Star: https://github.com/bestony/logoly