1. 在Rocky Linux 9系统在安装p7zip软件
sudo dnf install p7zip p7zip-plugins
2. 解压缩rar文件
7z x inputfile.rar
3. 生成rar文件
7z a outfile.rar file1 file2 file3
sudo dnf install p7zip p7zip-plugins
7z x inputfile.rar
7z a outfile.rar file1 file2 file3
若没有xfs_quota命令,则安装quota软件:
dnf install quota
临时关闭
setenforce 0
永久关闭
perl -p -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
mount -o remount,usrquota,prjquota /dev/sdb1 /home
或修改 /etc/fstab 文件永久生效(需要重新挂载目标分区才能生效):
/dev/sdb1 /home xfs defaults,usrquota,prjquota 0 0 # 注意有3种quota方式,usrquota给用户限额,grpquota给用户组限额,prjquota给文件夹限额。注意后两者是互斥的,只能选一种,当修改磁盘配额方式后,重启服务器服务器才能生效,而重新挂载分区是不行的。
然后使用mount命令查看挂载分区是否支持磁盘配额:
mount | grep home
/dev/sdb1 on /home type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
虽然添加了挂载参数,使用mount命令检测时,其挂载方式依然是noquota。在使用xfs_quota进行配额时会失败,提示:
xfs_quota: cannot set limits: Function not implemented
此时,需要进行开机的配置设置,修改启动配置文件/etc/default/grub内容如下:
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M rhgb quiet rootflags=uquota,pquota" 主要添加了rootflags=uquota,pquota参数。
然后,重新生成启动文件:
对于Legacy启动
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig && grub2-mkconfig -o /boot/grub2/grub.cfg
对于UEFI启动
cp /boot/efi/EFI/rocky/grub.cfg /boot/efi/EFI/rocky/grub.cfg.orig && grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
然后重启后,再检测mount参数。
对user01用户的/home分区进行配额。软限制为3G,硬限制为3.5G。
xfs_quota -x -c 'limit bsoft=3000m bhard=3500m user01' /home
xfs_quota -x -c report /home
-x 允许执行管理员指令
-c 输入执行的指令
对user01、user02、user03等多个用户的家目录进行配额。软限制为3G,硬限制为3.5G。按如下步骤进行:
第一步,生成/etc/projects文件
echo "1000:/home/user01
1000:/home/user02
1002:/home/user03" > /etc/projects
以上/etc/projects文件中设置了两个project编号。project编号是一个数字,可以随便给一个。其中1000对应两个文件夹,1002对应一个文件夹。后续设置好后,这1000对应的两个文件夹一起共享一个配额,而1002对应的文件夹独享一个配额。
第二步,生成/etc/projid文件
echo "user01_3G:1000
user03_3G:1002" > /etc/projid
该/etc/projid文件设置一个好记的project名称(随便取名,推荐取得有意义些),对应这project编号。
第三步,让project名称生效
xfs_quota -x -c 'project -s user01_3G' /home
xfs_quota -x -c 'project -s user03_3G' /home
命令行project的参数-s表示读取/etc/projects文件内容,标记目标文件夹进行配额。每当对/etc/projects文件内容进行修改后,则需要重新运行相应的命令,使修改生效。
第四步,设置project名称对应的磁盘配额。
xfs_quota -x -c 'limit -p bsoft=3000m bhard=3500m user01_3G' /home
xfs_quota -x -c 'limit -p bsoft=3000m bhard=3500m user03_3G' /home
命令行limit的参数-p表示使用project方式进行配额。若配额限制为0,则表示不进行配额限制。
查看磁盘配额及使用量:
xfs_quota -x -c report /home
查看磁盘分区和目录是否有quota设置:
xfs_quota -x -c print
查看磁盘配额的使用量:
xfs_quota -x -c "df -h"
在Windows11系统下,按 Windows+i 打开设置,点击应用,点击可选功能,点击查看功能,勾选OpenSSH服务器,点击下一步,点击安装。
或者使用Windows Terminal安装OpenSSH:按Windows + x,点击Windows终端(管理员),输入以下命令分别安装OpenSSH客户端和服务端。
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
安装完毕OpenSSH服务端后,还需要启动SSH服务,设置开机启动,设置防火墙。在Windows终端(管理员)中执行以下命令:
# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}
操作完毕后,即可使用SSH登录到Windows系统终端了。登录后的操作,和在目标机器上打开其Windows终端进行操作是等同的。
ssh username@servername
修改OpenSSH配置文件,使支持使用密钥远程登录Windows系统。修改C:\ProgramData\ssh\sshd_config文件的内容,修改如下几项:
PubkeyAuthentication yes PermitRootLogin no ClientAliveInterval 60 ClientAliveCountMax 10 UseDNS no GatewayPorts yes
修改完配置文件后,在Windows终端中重启SSH服务:
Stop-Service sshd; Start-Service sshd
或
Restart-Service -Name sshd
我经常远程登录Linux服务器进行比较耗时的计算,却又想在程序结束后能及时提醒我。于是,我在输入一个耗时较长的命令后,额外加一个命令finishing_reminder_by_ringingSong.pl。该命令在远程Linux系统上运行后,能播放我当前笔记本电脑Windows系统中的一段响铃音乐。具体的操作流程如下:
将在Linux系统上的密钥文件id_rsa拷贝到Windows系统用户的.ssh文件夹下,将授权文件authorized_keys拷贝到C:\ProgramData\ssh文件夹下并重命名为administrators_authorized_keys。在Windows终端(管理员)中对这两个文件再进行权限设置,修改拥有者权限:
icacls.exe "C:\Users\chenlianfu\.ssh\id_rsa" /inheritance:r /grant "chenlianfu:F"
icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
在Windows系统上执行命令,构建到公网服务器的反向隧道:
ssh -f -N -R 52228:localhost:22 chenlianfu@chenlianfu.com
考虑设置开机时在联网状态下自动运行以上命令:右击我的电脑,显示更多选项,管理,任务计划程序,创建任务,在弹出的页面中进行设置。触发器:启动后1分钟;条件:只有在有网络连接可用时才启动;操作:以上ssh命令。
在远程Linux计算服务器上检测能否使用密钥登录到Windows笔记本电脑上:
ssh -p 52228 chenlianfu@chenlianfu.com
设置Windows系统Path路径:按Windows+q搜索“高级系统设置”,点击“查看高级系统设置”,在弹出的窗口中点击“环境变量”,鼠标左键选中“Path”所在行,再点击编辑,浏览到文件夹C:\Program Files (x86)\Windows Media Player和C:\Program Files (x86)\Tencent\QQMusic\QQMusic1917.16.31.32,从而将该路径添加进去,再点击确定。此外,我将音频文件放置于D:\ringing_sound_01.mp3路径。关闭所有Windows终端,再重新打开,输入命令即可播放音乐:
wmplayer.exe D:\ringing_sound_01.mp3
QQMusic.exe D:\ChenLianfu_Data\05.设置数据\ringing_sound_01.mp3
在远程Linux服务器中执行命令,即可播放本地笔记本电脑上的音频。
ssh -p 52228 chenlianfu@chenlianfu.com "wmplayer.exe D:\ChenLianfu_Data\05.设置数据\ringing_sound_01.mp3"
首先,创建一个指定大小的文件。例如创建一个大小为 200G 的文件
# dd if=/dev/zero of=swapadd1 bs=4096 count=52428800
然后,将该文件加入到交换分区
# mkswap swapadd1 # swapon swapadd1
关闭某一个文件指向的虚拟内存
# swapoff -v swapadd1
在CentOS8系统中,当物理内存使用量达到80%时,则开始使用虚拟内存。若想优先全部使用物理内存,当100%使用完毕物理内存后,才开始使用虚拟内存,则可以进行如下设置:
# sysctl vm.swappiness=0
# cat /proc/sys/vm/swappiness
有时候发现物理内存剩余很多,而需您内存使用了不少。这时可以使用以下命令来将虚拟内存数据转移到物理内存,并关闭虚拟内存:
# swapoff -a
然后再重新启用虚拟内存:
# swapon -a
首先,我在万网上解析域名如下:
记录类型 主机记录 记录值 A mail 115.29.105.12 MX @ mail.chenlianfu.com TXT @ v=spf1 a mx -all
然后修改 CetnOS 系统下的 PostFix 的配置文件 /etc/postfix/main.cf , 修改的内容如下:
myhostname = mail.chenlianfu.com mydomain = chenlianfu.com myorigin = $mydomain inet_interfaces = all inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 127.0.0.0/8, 168.100.189.0/28, hash:/etc/postfix/access relay_domains = $mydestination home_mailbox = Maildir/ mail_spool_directory = /var/spool/mail message_size_limit = 52428800
然后运行如下命令启动 Postfix 服务:
# postmap hash:/etc/postfix/access # postalias hash:/etc/aliases # /etc/init.d/postfix check # /etc/init.d/postfix restart #
mail命令参数:
-s subject 邮件的标题。若标题有空格,则需要使用引号。 -a attachment 将目标文件作为附件发送。若有多个附件需要发送,则使用多个该参数。 -c address 抄送副本到邮件地址列表。这些邮件地址使用逗号分隔。抄送的邮件地址和收件人地址能 被所收件地址看到。 -b address 暗送的邮件地址列表。这些邮件地址使用逗号隔开。暗送的邮件地址不能被其收件地址看 到。故mail命令不能将邮件分别发送到邮件地址列表。
使用例子:
$ mail -s "a e-mail subject" -a ./test.tar.gz chenllianfu@foxmail.com < mail_content $ cat mail_content | mail -s "a e-mail subject" -a ./test.tar.gz chenllianfu@foxmail.com $ echo "mail_content" | mail -s "a e-mail subject" -a ./test.tar.gz chenllianfu@foxmail.com $ mail -s "a e-mail subject" -a ./test.tar.gz chenllianfu@foxmail.com input EOT
由于编译或使用新版本需要高版本的 GCC 和 wxWidgets,因此,不推荐使用新版本的 FileZilla。Fileilla 官网仅提供了最新版本的下载链接。可以到sourceforge上下载旧版本。
$ wget http://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.5.3/FileZilla_3.5.3_x86_64-linux-gnu.tar.bz2 $ tar jxf FileZilla_3.5.3_x86_64-linux-gnu.tar.bz2 -C /opt/ $ echo 'PATH=$PATH:/opt/FileZilla3/bin/' >> ~/.bashrc $ source ~/.bashrc $ filezilla
iostat 的常用例子:
$ iostat -c -d 1 10 $ iostat -c -x -m 1 10 $ iostat -c -x /dev/sda /dev/sdb 1 10 上个命令表示对 /dev/sda 和 /dev/sdb 两个磁盘进行 I/O 统计,每秒统计一次,共统计10次。
iostat 的常用参数:
-c 显示 CPU 的使用情况 -d 显示设备的使用情况 -x 显示扩展统计数据。若设置了 -x 参数,则 -d 参数失效 -k 使用 Kb 作为单位 -m 使用 Mb 作为单位
1. 需要进行多次统计,多次统计的结果是实时的结果。
2. 使用 -c 参数能得到 CPU 的使用统计。 %iowait 表示系统有 I/O request 的 CPU 空闲时间。
3. 使用 -d 参数,其统计结果中 tps(the number of transfers per second) 表示设备每秒的传输次数。
4. 使用 -x 参数, %util 表示磁盘使用率,即处理 I/O request 的时间的比率。该值接近 100%,表明 I/O 成了瓶颈。若此时 CPU 的使用率比预期低,则表示磁盘性能不够,导致 CPU 不能充分利用。
适合于 FTP 操作的命令和软件比较多。 linux 下操作命令有 ftp, lftp 和 sftp; 图形化界面非常好用的有 FileZilla。 为了便于在服务器上使用命令行来进行便捷的 FTP 操作,我个人喜欢使用 lftp 。
lftp 的简单例子:
比如,下载测序公司释放的数据:
从诺和致源公司 FTP 站点 ftpdata.novogene.cn 以用户名 Novo_s4VcJc 密码 dpdATZ77 端口 2300 下载测序释放的数据: $ lftp -e "get -c data/species.reads1.fq.gz; exit" \ -u Novo_s4VcJc,dpdATZ77 -p 2300 ftpdata.novogene.cn
比如,上传测序原始数据到 NCBI 的 SRA FTP 站点:
$ lftp -e "put raw_data.reads1.fastq; exit" \ -u sra,VfOiVJn1 -p 21 ftp-private.ncbi.nih.gov
lftp 的参数:
-f file 执行该文件中的 FTP 命令,执行完毕后退出。 -c cmd 将 FTP 命令直接写入到该参数后,执行其中的命令后退出。 -u user[,passwd] 通过该参数输入用户名,同时可以选择输入密码。 -p port 设置端口。默认为 21。 -e cmd 在 lftp 命令后给出 FTP 位点, -u 和 -p 参数登录 FTP 后,再执行该参数后的 FTP 命令。
直接在终端中输入 lftp 命令后,进入了 lftp 的操作界面,从而可以使用 FTP 命令进行操作了。
用于连接 FTP 站点,用法为:
open [-e cmd] [-u user[,pass]] [-p port] host|url
进入 FPT 站点后, pwd 命令用于显示服务器端的当前工作目录; lpwd 用于显示本地机器上的当前工作目录。
进入 FPT 站点后, ls 命令用于列出服务器端的目录内容; !ls 用于列出本地机器上的目录内容。
进入 FPT 站点后,cd 命令用于在服务器端切换路径; lcd 用于在本地机器上切换路径。
用于从 FTP 上下载数据。该命令能使用多个连接下载数据,从而加大下载速度,但是会增大服务端和网络的负载。用法和参数为:
pget [OPTS] rfile [-o lfile] -c 支持续传 -n int 设置最大的连接数
用于从 FTP 上下载数据。 get 用于下载一个文件, mget 用于下载多个文件。 用法和参数如下:
get [-E] [-a] [-c] [-O base] rfile [-o lfile] ... mget [-c] [-d] [-a] [-E] [-O base] files -c 支持断点续传。 -E 成功下载后,删除服务器端的数据 -a 使用 ascii 模式下载,默认为二进制模式下载 -d 创建和下载文件名一致的文件夹,并将文件保存到文件夹中 -O string 指定下载文件存放的路径 -o string 将 get 命令下载数据的数据保存到此文件中
用于将数据上传到服务器端。put用于上传一个文件,mput用于上传多个文件。用法和参数为:
put [-E] [-a] [-c] [-O base] lfile [-o rfile] mput [-c] [-d] [-a] [-E] [-O base] files 参数和 get/mget 参数一致。
8. mirror
用于将目标文件夹全部下载到指定目录中。其用法和参数如下:
mirror [OPTS] [source [target]] mirror 的常用参数: -c 支持断点续传 -R 反向 mirror,即将本地文件上传到服务器端 --parallel=N 同时并行下载 N 个文件 --use-pget=N 对每个文件使用 pget 下载,并设置 pget 的连接数。
Aspera提供了大文件高速传输方案,适合于大数据的传输。客服端的使用是免费的。
Aspera下载网页: http://downloads.asperasoft.com/connect2/。
$ wget http://d3gcli72yxqn2z.cloudfront.net/connect/bin/aspera-connect-3.5.1.92523-linux-64.tar.gz $ tar zxf aspera-connect-3.5.1.92523-linux-64.tar.gz $ sh aspera-connect-3.5.1.92523-linux-64.sh $ echo 'PATH=$PATH:~/.aspera/connect/bin/' >> ~/.bashrc $ source ~/.bashrc $ ascp --help 软件安装在 ~/.aspera/connect/ 目录下。
例子,使用 Aspera 高速下载 NCBI或 EBI 上的数据:
$ ascp -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ --host=ftp-private.ncbi.nlm.nih.gov --user=anonftp --mode=recv \ /sra/sra-instant/reads/ByRun/sra/ERR/ERR105/ERR105009/ERR105009.sra ./ $ ascp -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ anonftp@ftp-private.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/ERR/ERR105/ERR105009/ERR105009.sra ./ $ ascp -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ --host=fasp.sra.ebi.ac.uk --user=era-fasp --mode=recv \ /vol1/fastq/ERR105/ERR105009/ERR105009_1.fastq.gz ./ $ ascp -T -l 200M -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh \ era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/ERR105/ERR105009/ERR105009_1.fastq.gz ./
Aspera 的用法和简单参数:
Aspera的用法: $ ascp [参数] 目标文件 目的地址 Aspera的常用参数: -T 不进行加密。若不添加此参数,可能会下载不了。 -i string 输入私钥,安装 aspera 后有在目录 ~/.aspera/connect/etc/ 下有几个私钥,使用 linux 服务器的时候一般使用 asperaweb_id_dsa.openssh 文件作为私钥。 --host=string ftp的host名,NCBI的为ftp-private.ncbi.nlm.nih.gov;EBI的为fasp.sra.ebi.ac.uk。 --user=string 用户名,NCBI的为anonftp,EBI的为era-fasp。 --mode=string 选择模式,上传为 send,下载为 recv。 -l string 设置最大传输速度,比如设置为 200M 则表示最大传输速度为 200m/s。若不设置该参数,则一般可达到10m/s的速度,而设置了,传输速度可以更高。
PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。
有人将 PostgreSQL 和 MySQL 作了比较, PostgreSQL 貌似完胜。
# yum install postgres* # /etc/init.d/postgresql start 启动数据库,第一次启动则会初始化数据库。
参考自: PostgreSQL 8.1 中文文档
使用 psql 命令登录 PostGreSQL 数据库。
初始化 PostGreSQL 数据库后,则会有名为 postgres 和 tempalte1 的数据库,有一个名为 postgres 的用户,无密码登录。
例如,使用 postgres 用户登录 postgres 数据库
$ psql postgres postgres psql (8.4.18) Type "help" for help. postgres=#
psql的用法与常用参数:
psql [options] [DBNAME [USERNAME]] DBNAME 设置要登录的数据库,默认为当前系统用户名 USERNAME 设置登录数据库的用户,默认为当前系统用户名 -h | --host=HOSTNAME 设置连接的服务器名,default: localhost -p | --port=PORT 设置端口, default: 5432 -U | --username=USERNAME 设置登录的用户名,默认为当前系统用户名
登录 postgresql 数据库后,提示符以登录的数据名加等于号表示。此时,可以输入 postgresql 命令行用于辅助数据库操作。这些命令行以 \ 开头。几个简单常用的命令如下:
\c[onnect] DBNAME 切换数据库 \l[+] 列举数据库 \dt 列举表 \d TABLENAME 查看表的结构 \q 退出 postgresql \cd [DIR] 切换 linux 系统的工作目录 \! [COMMAD] 执行 linux 系统命令。比如 \! ls --color 用于打印出当前目录的文件名; 但是 \! cd 命令无效。 \? 展示所 postgresql 的命令行帮助文档 \h CREATE ROLE \h 为查看 SQL 命令的帮助信息,以上命令为查看 CREATE ROLE 命令的详细帮助。
使用 SQL 语言对 postgresql 的数据库和表进行操作,初学者需要的 SQL 命令:
CREATE DATABASE chado 创建名为 chado 的数据库 DROP DATABASE chado 删除名为 chado 的数据库 CREATE ROLE chenlianfu [PASSWORD '123456'] 创建名为 chenlianfu 的用户 DROP ROLE chenlianfu 删除名为 chenlianfu 的用户
在 linux 终端下,可以使用一些命令来操作 PostGres 数据库。
createdb 创建数据库 createlang 给数据库安装语言 createuser 用户创建用户 dropdb 删除数据库 droplang 从数据库删除语言 dropuser 删除用户 initdb 初始化数据库 pg_dump 将数据库转换为文本文件,用于备份