标签: centos7

处理损坏的 XFS 文件系统的正确方法

我最近有一个 XFS 文件系统由于电源故障而损坏。(CentOS 7 系统)。系统无法正常启动。

我从救援 cd 启动并尝试xfs_repair,它告诉我挂载分区以处理日志。

我安装了分区,并进行了ls验证,是的,它似乎在那里。我卸载了分区并xfs_repair再次尝试并得到相同的消息。

在这种情况下我该怎么办?我的救援 CD(系统救援 CD,版本 4.7.1)有问题吗?我应该使用其他一些程序吗?

我最终只是从备份中恢复系统(在这种情况下它既快速又简单),但我想知道将来要做什么。

xfs data-recovery fsck centos7

22
推荐指数
1
解决办法
9万
查看次数

php脚本无法访问/tmp文件夹

我没有 open_basedir,php 可以访问 /etc /usr /proc /home 等......但不能访问 /tmp。

tmpfs 安装在 /tmp (/tmp type tmpfs (rw)) 这也是我想使用 /tmp 文件夹的原因。

我的文件归 http(nginx 和 php 的用户)所有,每个人都可以阅读。

sudo -u http cat /tmp/file 正在运行,但 php 脚本中的任何内容都不起作用(如 file_exist() 或 file())。

编辑:日志中显示的错误:

PHP Warning:  file(/tmp/ydlw/pid): failed to open stream: No such file or directory in /srv/http/ydlw/status.php on line 267
Run Code Online (Sandbox Code Playgroud)

编辑2:我以另一种方式测试了这个问题。我做了

touch("/tmp/boo");
file_exist("/tmp/boo");
Run Code Online (Sandbox Code Playgroud)

和 file_exist 返回 true 以便创建文件。然后我在 /tmp 里面看了看,在那里找不到“boo”文件。这就是我所害怕的,php 看不到挂载点。为什么会这样,我该如何解决?

php tmp tmpfs file-permissions centos7

21
推荐指数
1
解决办法
3万
查看次数

永久启用 SCL

有什么方法可以永久启用 SCL?

我已经安装了rh-php56,我想确保每次 ssh 到我的机器时都加载了它。

我目前正在运行 CentOS 7。

centos centos7 php56 scl

21
推荐指数
2
解决办法
3万
查看次数

无法解析主机:mirrorlist.centos.org Centos 7

我全新安装了最新的 centos 7

[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core) 
[root@localhost ~]# 
Run Code Online (Sandbox Code Playgroud)

我想安装一些东西,但没有安装 wget,所以当我尝试安装 wget 时,我看到 yum 出现错误。

我可能在互联网上看到了有关此问题的所有主题,但不幸的是我找不到我的解决方案。

[root@localhost ~]# yum update
Loaded plugins: fastestmirror
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirror.centos.org; Unknown error"
Trying other mirror.

 One of the configured repositories failed (CentOS-7 - Base),
 and yum doesn't have enough cached data to continue. At this …
Run Code Online (Sandbox Code Playgroud)

centos7

21
推荐指数
1
解决办法
19万
查看次数

对 DFOREGROUND 与 Apache 感到困惑

所以我刚刚使用 Yum 在新的 CentOS 7 服务器上安装了 Apache。我以前安装过 Apache 很多次,但从来没有见过这个:当我现在运行ps aux 时,它总是显示

/usr/sbin/httpd -DFOREGROUND

Google 告诉我,这意味着该进程将在前台运行,而不是与 shell 分离,但我真的不明白这意味着什么 - 如果我关闭我的 shell,Apache 会死吗?

我只想获得正常的 Apache 行为,并让 httpd 像往常一样运行,在后台运行,我是否需要禁用 DFOREGROUND?(顺便说一句,我不知道该怎么说)

httpd apache-2.4 centos7

19
推荐指数
1
解决办法
5万
查看次数

使用 CentOS7 登录时延迟较长

我有一个 CentOS 7 系统,当我使用 putty 或 ssh 登录时,在我收到密码提示之前有很长的延迟。我跑了 ssh -v ,我发现它达到了这个:

debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
Run Code Online (Sandbox Code Playgroud)

然后它在那里坐了 1-2 分钟,然后这个输出爆炸了:

debug1: Authentications that can continue:
publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available
debug1: Unspecified GSS failure.  Minor code may provide more information
No …
Run Code Online (Sandbox Code Playgroud)

ssh centos7

19
推荐指数
2
解决办法
3万
查看次数

如何在 Centos7 上使用防火墙删除对端口的访问?

如果使用 firewall-cmd 打开一个端口供公众使用,我想将此端口限制为特定 IP,我在此SITE上找到了答案。

我使用以下方法打开它:

$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

现在使用我发现的信息中的信息,我想将此端口的访问权限限制为特定的 IP 地址。我是否需要先从公共访问中删除此端口?

或者我可以按如下方式添加新规则,这样就能解决我的问题吗?

$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
  rule family="ipv4"
  source address=”123.1.1.1"
  port protocol="tcp" port="10050" accept'
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

但是当我运行以下命令时:

$ firewall-cmd --list-ports 
Run Code Online (Sandbox Code Playgroud)

10050/tcp 仍然显示。

请理解我对服务器端配置不太熟悉。

解决方案:不要忘记--runtime-to-permanent

$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload 
Run Code Online (Sandbox Code Playgroud)

firewall port centos7

19
推荐指数
2
解决办法
12万
查看次数

在 CentOS 7 上使用 IPv6 获取 Squid 和 TPROXY

我在 CentOS 7 服务器上让 TPROXY 与 Squid 和 IPv6 一起工作时遇到问题。我以前使用 NAT 的通用拦截设置,但它仅限于 IPv4。我现在正在扩展设置以包含带有 TPROXY 的 IPv6。

我一直在使用有关该主题的官方 Squid wiki 文章来配置所有内容:

http://wiki.squid-cache.org/Features/Tproxy4

到目前为止,TPROXY 配置似乎适用于 IPv4,没有任何问题。然而,使用 IPv6 时,连接超时且无法正常工作。我将分解设置以便更好地理解。

请注意,所有防火墙和路由规则对于 IPv4 完全相同,唯一的区别是inet6ip6tables用于在下面的示例中配置基于 IPv6 的规则。

  • 操作系统和内核:CentOS 7 (3.10.0-229.14.1.el7.x86_64)
  • 根据 yum,所有软件包都是最新的
  • Squid 版本:3.3.8(也试过 3.5.9)
  • 防火墙:iptables/ip6tables 1.4.21
  • libcap-2.22-8.el7.x86_64

IPv6 连接目前是通过 Hurricane Electric 的 6in4 隧道,这是在 DD-WRT 路由器上配置的,然后分配的前缀通过radvd. Squid 框配置了多个静态 IPv6 地址。

Squid 盒位于它所服务的主 LAN 中。端口 80 上的流量被拦截的客户端(主要是无线客户端)通过我的 DD-WRT 路由器被推送到 Squid 框,并使用以下防火墙和路由规则,改编自 Policy Routing wiki 文章和 DD-WRT wiki

routing ipv6 squid transparent-proxy centos7

18
推荐指数
1
解决办法
2743
查看次数

如何将系统从 CentOS 7 更新到 CentOS 8?

假设从零重新安装不切实际,我如何执行从 CentOS 7 到 CentOS 8 的更新?

我试图做一个yum install http://mirror.bytemark.co.uk/centos/8/BaseOS/x86_64/os/Packages/centos-release-8.0-0.1905.0.9.el8.x86_64.rpm但显然这并不像人们期望的那样工作。yum update在此之后运行会使 yum 陷入无休止的递归尝试以解决依赖关系。

centos centos7 centos8

18
推荐指数
1
解决办法
2万
查看次数

升级到 Ubuntu 20.04 后无法连接 MySQL(错误 2026)

将我的工作站升级到 Ubuntu 20.04 LTS 后,我无法连接到在 CentOS 7 服务器上运行的 MySQL 5.7.27。我使用命令进行连接mysql -h <server_ip> -u <user_name> -p,输入密码后出现错误 2026:

ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL
routines:ssl_choose_client_version:unsupported protocol
Run Code Online (Sandbox Code Playgroud)

我还尝试使用 mysqldump 获取数据库数据,但最终出现了类似的错误。我想可能在工作站升级后 mysql 客户端不支持旧协议,所以我使用 ssh 登录服务器,从服务器的 shell 访问 mysql 并查看支持哪些协议

mysql> SHOW GLOBAL VARIABLES LIKE 'tls_version';
+---------------+---------------+
| Variable_name | Value         |
+---------------+---------------+
| tls_version   | TLSv1,TLSv1.1 |
+---------------+---------------+
1 row in set (0,00 sec)
Run Code Online (Sandbox Code Playgroud)

有了这些信息,我尝试再次从工作站连接,这次指定了 TLS 版本

mysql -h <server_ip> --tls-version=TLSv1.1 -u <user_name> -p
mysql -h <server_ip> --tls-version=TLSv1 -u <user_name> -p …
Run Code Online (Sandbox Code Playgroud)

mysql ssl centos7 ubuntu-20.04

17
推荐指数
2
解决办法
1万
查看次数