首页
关于
留言
Search
1
红米 AX3000 (AX6) 路由器解锁 SSH 教程
6,676 阅读
2
网盘挂载程序sharelist美化教程
4,216 阅读
3
小米路由器 AX3600 开启SSH教程,官方固件即可安装 ShellClash开启科学上网
2,168 阅读
4
Oracle 甲骨文 ARM VPS 自动抢购脚本
1,819 阅读
5
编译带PassWall和SSR-plus插件的Openwrt系统
1,393 阅读
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
登录
Search
标签搜索
Java
Linux
Mysql
IDEA
Debian
Docker
Springboot
CentOS
Cloudflare
Maven
JavaScript
SQL
Wordpress
宝塔
Nginx
Windows
MacBook
JS
CSS
Openwrt
William
累计撰写
144
篇文章
累计收到
702
条评论
首页
栏目
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
页面
关于
留言
搜索到
14
篇与
的结果
2022-04-03
nohup 和 & 后台运行,进程查看及终止
nohup用途:不挂断地运行命令。语法:nohup Command [ Arg … ] [ & ]无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。退出状态:该命令返回下列出口值:126 可以查找但不能调用 Command 参数指定的命令。127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。&用途:在后台运行一般两个一起用 nohup command &例子:nohup /usr/local/node/bin/node /www/im/chat.js >> /usr/local/node/output.log 2>&1 &查看运行的后台进程jobs -ljobs 命令只看当前终端生效的,关闭终端后,在另一个终端 jobs 已经无法看到后台跑得程序了,此时利用 ps(进程查看命令)ps -efps -aux|grep chat.jsa:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分注:用 ps -def | grep 查找进程很方便,最后一行总是会 grep 自己用 grep -v 参数可以将 grep 命令排除掉ps -aux | grep xxx | grep -v grepaux 输出格式USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDUSER: 行程拥有者PID: pid%CPU: 占用的 CPU 使用率%MEM: 占用的记忆体使用率VSZ: 占用的虚拟记忆体大小RSS: 占用的记忆体大小TTY: 终端的次要装置号码 (minor device number of tty)STAT: 该行程的状态:D: 无法中断的休眠状态 (通常 IO 的进程)R: 正在执行中S: 静止状态T: 暂停执行Z: 不存在但暂时无法消除W: 没有足够的记忆体分页可分配<: 高优先序的行程N: 低优先序的行程L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)START: 行程开始时间TIME: 执行的时间COMMAND:所执行的指令再用 awk 提取一下 进程IDps -aux | grep chat.js | grep -v grep | awk '{print $2}'后台日志输出到文件关于如何将后台日志输出到文件,可看本博客前面发的文章:Linux定时任务crontab将错误日志与正确输出写入到文件如果某个进程起不来,可能是某个端口被占用查看使用某端口的进程lsof -i:8090netstat -ap|grep 8090查看到进程 id 之后,使用 netstat 命令查看其占用的端口netstat -nap|grep 7779终止后台运行的进程kill -9 进程号
2022年04月03日
31 阅读
0 评论
0 点赞
2022-03-31
在 Linux 上如何清除内存的 Cache、Buffer 和交换空间
像任何其他的操作系统一样,GNU/Linux 已经实现的内存管理不仅有效,而且更好。但是,如果有任何进程正在蚕食你的内存,而你想要清除它的话,Linux 提供了一个刷新或清除RAM缓存方法。如何在 Linux 中清除缓存(Cache)?每个 Linux 系统有三种选项来清除缓存而不需要中断任何进程或服务。(LCTT 译注:Cache,译作“缓存”,指 CPU 和内存之间高速缓存。Buffer,译作“缓冲区”,指在写入磁盘前的存储再内存中的内容。在本文中,Buffer 和 Cache 有时候会通指。)仅清除页面缓存(PageCache)sync; echo 1 > /proc/sys/vm/drop_caches清除目录项和inodesync; echo 2 > /proc/sys/vm/drop_caches清除页面缓存,目录项和inodesync; echo 3 > /proc/sys/vm/drop_caches上述命令的说明:sync 将刷新文件系统缓冲区(buffer),命令通过“;”分隔,顺序执行,shell在执行序列中的下一个命令之前会等待命令的终止。正如内核文档中提到的,写入到 drop_cache 将清空缓存而不会杀死任何应用程序/服务,echo 命令做写入文件的工作。如果你必须清除磁盘高速缓存,第一个命令在企业和生产环境中是最安全,echo 1 >只会清除页面缓存。 在生产环境中不建议使用上面的第三个选项 echo 3 >,除非你明确自己在做什么,因为它会清除 缓存页,目录项 和 inodes。在 Linux 上释放也许被内核所使用的缓冲区(Buffer)和缓存(Cache)是否是个好主意?当你设置许多设定想要检查效果时,如果它实际上是专门针对 I/O 范围的基准测试,那么你可能需要清除缓冲区和缓存。你可以如上所示删除缓存,无需重新启动系统(即无需停机)。Linux 被设计成它在寻找磁盘之前到磁盘缓存寻找的方式。如果它发现该资源在缓存中,则该请求不会发送到磁盘。如果我们清理缓存,磁盘缓存就起不到作用了,系统会到磁盘上寻找资源。此外,当清除缓存后它也将减慢系统运行速度,系统会将每一个被请求的资源再次加载到磁盘缓存中。现在,我们将创建一个 shell 脚本,通过一个 cron 调度任务在每天下午2点自动清除RAM缓存。如下创建一个 shell 脚本 clearcache.sh 并在其中添加以下行:注意,我们这里使用了 "echo 3",但是不推荐使用在产品环境中,应该使用 "echo 1"#!/bin/bash echo "echo 3 > /proc/sys/vm/drop_caches"给 clearcache.sh 文件设置执行权限chmod 755 clearcache.sh现在,当你需要清除内存缓存时只需要调用脚本。现在设置一个每天下午2点的定时任务来清除RAM缓存,打开 crontab 进行编辑。crontab -e添加以下行,保存并退出。0 3 * * * /path/to/clearcache.sh在生产环境的服务器上自动清除RAM是否是一个好主意?不!它不是。想想一个情况,当你已经预定脚本在每天下午2点来清除内存缓存。那么其实该脚本会执行并刷新你的内存缓存。在某一天由于某些原因,可能您的网站的在线用户会超过预期地从你的服务器请求资源。而在这时,按计划调度的脚本运行了,并清除了缓存中的一切。当所有的用户都从磁盘读取数据时,这将导致服务器崩溃并损坏数据库。因此,清除缓存仅在必要时并且在你的预料之中,否则你就是个呆瓜系统管理员。如何清除 Linux 的交换空间?如果你想清除掉 swap(交换空间),你可以运行下面的命令:swapoff -a && swapon -a此外,了解有关风险后,您可以将上面的命令添加到 cron 中。现在,我们将上面两种命令结合成一个命令,写成正确的脚本来同时清除RAM缓存和交换空间。echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'或su -c 'echo 3 > /proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'
2022年03月31日
32 阅读
0 评论
0 点赞
2022-02-22
9 个非常实用的 shell 脚本
1、Dos攻击防范(自动屏蔽攻击 IP)#!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}') for IP in $ABNORMAL_IP; do if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then iptables -I INPUT -s $IP -j DROP echo "$(date +'%F_%T') $IP" >> /tmp/drop_ip.log fi done2、Linux 系统发送告警脚本# yum install mailx # vi /etc/mail.rc set from=baojingtongzhi@163.com smtp=smtp.163.com set smtp-auth-user=baojingtongzhi@163.com smtp-auth-password=123456 set smtp-auth=login3、MySQL 数据库备份单循环#!/bin/bash DATE=$(date +%F_%H-%M-%S) HOST=localhost USER=backup PASS=123.com BACKUP_DIR=/data/db_backup DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys") for DB in $DB_LIST; do BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null; then echo "$BACKUP_NAME 备份失败!" fi done4、MySQL 数据库备份多循环#!/bin/bash DATE=$(date +%F_%H-%M-%S) HOST=localhost USER=backup PASS=123.com BACKUP_DIR=/data/db_backup DB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys") for DB in $DB_LIST; do BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE} [ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR &>/dev/null TABLE_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "use $DB;show tables;" 2>/dev/null) for TABLE in $TABLE_LIST; do BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE > $BACKUP_NAME 2>/dev/null; then echo "$BACKUP_NAME 备份失败!" fi done done5、Nginx 访问访问日志按天切割#!/bin/bash LOG_DIR=/usr/local/nginx/logs YESTERDAY_TIME=$(date -d "yesterday" +%F) LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m") LOG_FILE_LIST="default.access.log" for LOG_FILE in $LOG_FILE_LIST; do [ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIR mv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME} done kill -USR1 $(cat /var/run/nginx.pid)6、Nginx 访问日志分析脚本#!/bin/bash # 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" LOG_FILE=$1 echo "统计访问最多的10个IP" awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10 echo "----------------------" echo "统计时间段访问最多的IP" awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr|head -10 echo "----------------------" echo "统计访问最多的10个页面" awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE |sort -k2 -nr echo "----------------------" echo "统计访问页面状态码数量" awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}'7、查看网卡实时流量脚本#!/bin/bash NIC=$1 echo -e " In ------ Out" while true; do OLD_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev) OLD_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev) sleep 1 NEW_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev) NEW_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev) IN=$(printf "%.1f%s" "$((($NEW_IN-$OLD_IN)/1024))" "KB/s") OUT=$(printf "%.1f%s" "$((($NEW_OUT-$OLD_OUT)/1024))" "KB/s") echo "$IN $OUT" sleep 1 done8、服务器系统配置初始化脚本#/bin/bash # 设置时区并同步时间 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime if ! crontab -l |grep ntpdate &>/dev/null ; then (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab fi # 禁用selinux sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config # 关闭防火墙 if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then systemctl stop firewalld systemctl disable firewalld elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then service iptables stop chkconfig iptables off fi # 历史命令显示操作时间 if ! grep HISTTIMEFORMAT /etc/bashrc; then echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc fi # SSH超时时间 if ! grep "TMOUT=600" /etc/profile &>/dev/null; then echo "export TMOUT=600" >> /etc/profile fi # 禁止root远程登录 sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config # 禁止定时任务向发送邮件 sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab # 设置最大打开文件数 if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then cat >> /etc/security/limits.conf << EOF * soft nofile 65535 * hard nofile 65535 EOF fi # 系统内核优化 cat >> /etc/sysctl.conf << EOF net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_tw_buckets = 20480 net.ipv4.tcp_max_syn_backlog = 20480 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_fin_timeout = 20 EOF # 减少SWAP使用 echo "0" > /proc/sys/vm/swappiness # 安装系统性能分析工具及其他 yum install gcc make autoconf vim sysstat net-tools iostat if9、监控 100 台服务器磁盘利用率脚本#!/bin/bash HOST_INFO=host.info for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO) PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO) TMP_FILE=/tmp/disk.tmp ssh -p $PORT $USER@$IP 'df -h' > $TMP_FILE USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $NF,int($5)}' $TMP_FILE) for USE_RATE in $USE_RATE_LIST; do PART_NAME=${USE_RATE%=*} USE_RATE=${USE_RATE#*=} if [ $USE_RATE -ge 80 ]; then echo "Warning: $PART_NAME Partition usage $USE_RATE%!" fi done done
2022年02月22日
39 阅读
0 评论
0 点赞
2021-12-31
宝塔面板安装指定历史版本教程-宝塔版本回退教程
使用宝塔官方一键命令,直接搭建出来的是最新版的宝塔。但是,很多时候我们需要使用低版本的,这个时候就没有办法直接使用一键命令来搭建了。下面就讲讲怎么安装指定历史版本宝塔面板。一、版本合集https://download.bt.cn/install/update/LinuxPanel-7.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.6.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.5.2.ziphttps://download.bt.cn/install/update/LinuxPanel-7.5.1.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.8.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.7.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.6.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.5.zip(会有绑定提醒)https://download.bt.cn/install/update/LinuxPanel-7.4.3.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.2.zip (有pma漏洞)https://download.bt.cn/install/update/LinuxPanel-7.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.1.1.ziphttps://download.bt.cn/install/update/LinuxPanel-7.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.3.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.2.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.1.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.9.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.8.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.7.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.6.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.5.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.2.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.5.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.4.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.3.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.2.ziphttps://download.bt.cn/install/update/LinuxPanel-6.6.6.ziphttps://download.bt.cn/install/update/LinuxPanel-6.5.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.9.2.ziphttps://download.bt.cn/install/update/LinuxPanel-5.9.1.zip(目前仍然很多人在用的版本)https://download.bt.cn/install/update/LinuxPanel-5.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.0.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.8.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.6.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.5.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.0.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.8.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.5.0.zip二、安装方法1、先使用官方命令正常进行宝塔安装ubuntu, debian, deepinwget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh2、根据官方手动升级/降级方法进行覆盖安装1、下载离线升级包,并将升级包上传到服务器中的/root目录 2、unzip LinuxPanel-* #解压文件 3、cd panel #切换到升级包目录 4、bash update.sh #执行升级脚本 5、cd .. && rm -f LinuxPanel-*.zip && rm -rf panel #删除升级包3、覆盖安装后如果出现登录用户名、密码错误无法登陆时,可以使用以下命令重置密码cd /www/server/panel && python tools.py panel yourpasswd4、为了更安全起见,可以执行以下内容,避免一些问题~~ (非必需)echo '127.0.0.1 bt.cn' >>/etc/hosts
2021年12月31日
73 阅读
0 评论
0 点赞
2021-12-27
macOS终端设置代理-iTerm-Terminal设置socks5代理
即使你电脑使用科学上网工具,设置了全局代理,使用终端的时候,仍然卡的一批,就比如 brew 和 git。brew的还可以通过换源来解决,但是听说换源有可能会带来未知的小毛病,当然是用原生的brew好啊brew代理brew 是用 curl 下载的,所以给 curl 设置 socks5 代理即可在 ~/.curlrc 文件中输入代理地址即可(没有的话需要先创建)socks5 = "127.0.0.1:7890"不用说端口都要换成你自己的啦。不然肯定没效果设置完以后,最好在终端执行一下source ~/.curlrc设置以后在终端执行:curl cip.cc未走代理的情况: 走代理的情况: git代理brew 有时需要从 github 拉仓库,此时需要给 git 设置全局代理git config --global http.proxy "socks5://127.0.0.1:7890" git config --global https.proxy "socks5://127.0.0.1:7890"取消git代理git config --global --unset http.proxy git config --global --unset https.proxy使用alias控制git代理alias githttp='git config --global http.proxy "socks5://127.0.0.1:1234"' alias githttps='git config --global https.proxy "socks5://127.0.0.1:1234"' alias ungithttp='git config --global --unset http.proxy' alias ungithttps='git config --global --unset https.proxy'终端全局代理在终端直接执行 alias 命令:alias setproxy='export ALL_PROXY=socks5://127.0.0.1:1234; echo '\''Set proxy successfully'\' alias unsetproxy='unset ALL_PROXY; echo '\''Unset proxy successfully'\'设置完以后,启用和关闭终端下的代理则执行 setproxy 和 unsetproxy 即可测试是否生效同样是在终端执行curl cip.cc
2021年12月27日
114 阅读
0 评论
0 点赞
2021-12-17
linux突然所有命令都失效了,显示bash: xxxxx: command not found
今天登陆了一台日本的服务器配置OCI的,然后修改了下 /etc/profile 文件,由地方弄错了,然后就出现了,输入什么命令都是 command not found。想要重启 reboot 不行,ls 也不行。出现这个问题是因为系统的环境变量没有正确配置造成的,造成这个原因有很多,比如系统升级,比如不正当操作。解决的方式有两种。1、直接在linux命令行界面输入如下,然后回车(导入环境变量,以及shell常见的命令的存放地址):export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin2、如果系统所有命令都不能使用时,还可以使用绝对命令vi打开profile,想William这情况的话,把刚才改了的有问题的地方全删了就可以了。(其实,如果这里有问题的地方没删除或者说没有改成正确的话,即使用了第一种方法,等会你退出登陆以后,再进来还是那种not found的情况的,所以说这里一定是要改的)/bin/vi /etc/profile在系统的配置文件里添加环境变量地址export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2021年12月17日
33 阅读
0 评论
0 点赞
2021-09-24
Linux 系统添加和删除 Swap 交换文件
简介Linux 系统中的 Swap 分区,即交换分区,类似于 Windows 的虚拟内存,其作用可简单的描述为:当系统的物理内存不够用的时候,将暂时不用的数据存放到交换空间所在的硬盘上,从而可以腾出内存来让别的程序运行。在这里不讨论直接划出一部分硬盘作为交换分区的情况,只介绍通过添加 Swap 文件来设置交换分区的方式。添加 Swap 文件随便进入一个目录用于后续存放 Swap 文件,也可以直接放在根目录,这里放在 /var 目录下。cd /var使用 dd 命令生成一个文件块,大小为自己想设置的 Swap 分区大小,这里生成一个名为 swapfile 的文件,大小设为 1G。dd if=/dev/zero of=swapfile bs=1M count=1024将该文件设为 Swap 文件(格式化)。mkswap swapfile激活 Swap 文件(启用虚拟内存)。swapon swapfile检查 Swap 是否正确。swapon -s另外为了安全建议将交换分区文件权限设为 0600 或 0644 ,执行以下命令。chmod 0600 swapfile此时已经成功添加了交换分区,可以使用 free 之类的命令查看验证。但这样重启后 Swap 分区会丢失,需要重新激活才行,所以我们一般在 fstab 文件为其添加开机自动挂载设置。vi /etc/fstab在最后增加以下内容:/var/swapfile swap swap defaults 0 0也可以直接执行如下命令来添加,与直接编辑fstab文件效果一样:echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab删除 Swap 文件这里以我们上面设置的 Swap 文件(文件名、文件路径)作为示范。首先将 Swap 文件取消激活:swapoff /var/swapfile然后删除我们设置的 Swap 文件:rm /var/swapfile最后再编辑 /fstab 文件删除掉自动挂载 Swap 的设置即可:vi /etc/fstab
2021年09月24日
34 阅读
0 评论
0 点赞
2021-09-24
Linux服务器设置主机名
设置正确的主机名(hostname)非常重要。如果主机名设置不正确,那么很多服务,比如邮件服务等,均无法正常运行。今天我们介绍一下如何正确地在Linux系统上设置 hostname.我们首先需要了解到,主机名分为两部分,短主机名(short hostname)和长主机名(fully qualified domain name, FQDN)。这两部分都需要正确设置。假设我们需要设置的主机名为 mx.iyume.top, 那么段主机名为 mx, 长主机名为 mx.iyume.top.下面我们就以 mx.iyume.top 为例介绍如何设置主机名。首先,需要编辑 /etc/hosts 文件,找到含有你的VPS的IP地址的那一行;如果没有,则添加一行。内容如下:88.88.88.88 mx.iyume.top mx其中, 88.88.88.88 是你的服务器IP地址,后面依次填入长主机名和短主机名,切记不要填反了编辑好后,在SSH中执行:echo "mx" > /etc/hostname hostname -F /etc/hostname这样,就设置好了主机名。设置好了以后我们检查一下是否设置正确。首先,执行:hostname此时我们应该只能看到短主机名 mx. 如果你看到了长主机名 mx.iyume.top, 说明之前设置错误,请重新检查上述步骤。然后,执行:hostname -f此时,我们应该只能看到长主机名 mx.iyume.top这样,我们就全部设置好了主机名hostname, 可以进行接下来的其他操作了。
2021年09月24日
15 阅读
0 评论
0 点赞
1
2