我最近有一个 XFS 文件系统由于电源故障而损坏。(CentOS 7 系统)。系统无法正常启动。
我从救援 cd 启动并尝试xfs_repair,它告诉我挂载分区以处理日志。
我安装了分区,并进行了ls验证,是的,它似乎在那里。我卸载了分区并xfs_repair再次尝试并得到相同的消息。
在这种情况下我该怎么办?我的救援 CD(系统救援 CD,版本 4.7.1)有问题吗?我应该使用其他一些程序吗?
我最终只是从备份中恢复系统(在这种情况下它既快速又简单),但我想知道将来要做什么。
我没有 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 看不到挂载点。为什么会这样,我该如何解决?
有什么方法可以永久启用 SCL?
我已经安装了rh-php56,我想确保每次 ssh 到我的机器时都加载了它。
我目前正在运行 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) 所以我刚刚使用 Yum 在新的 CentOS 7 服务器上安装了 Apache。我以前安装过 Apache 很多次,但从来没有见过这个:当我现在运行ps aux 时,它总是显示
/usr/sbin/httpd -DFOREGROUND
Google 告诉我,这意味着该进程将在前台运行,而不是与 shell 分离,但我真的不明白这意味着什么 - 如果我关闭我的 shell,Apache 会死吗?
我只想获得正常的 Apache 行为,并让 httpd 像往常一样运行,在后台运行,我是否需要禁用 DFOREGROUND?(顺便说一句,我不知道该怎么说)
我有一个 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) 如果使用 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) 我在 CentOS 7 服务器上让 TPROXY 与 Squid 和 IPv6 一起工作时遇到问题。我以前使用 NAT 的通用拦截设置,但它仅限于 IPv4。我现在正在扩展设置以包含带有 TPROXY 的 IPv6。
我一直在使用有关该主题的官方 Squid wiki 文章来配置所有内容:
http://wiki.squid-cache.org/Features/Tproxy4
到目前为止,TPROXY 配置似乎适用于 IPv4,没有任何问题。然而,使用 IPv6 时,连接超时且无法正常工作。我将分解设置以便更好地理解。
请注意,所有防火墙和路由规则对于 IPv4 完全相同,唯一的区别是inet6和ip6tables用于在下面的示例中配置基于 IPv6 的规则。
IPv6 连接目前是通过 Hurricane Electric 的 6in4 隧道,这是在 DD-WRT 路由器上配置的,然后分配的前缀通过radvd. Squid 框配置了多个静态 IPv6 地址。
Squid 盒位于它所服务的主 LAN 中。端口 80 上的流量被拦截的客户端(主要是无线客户端)通过我的 DD-WRT 路由器被推送到 Squid 框,并使用以下防火墙和路由规则,改编自 Policy Routing wiki 文章和 DD-WRT wiki
假设从零重新安装不切实际,我如何执行从 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 陷入无休止的递归尝试以解决依赖关系。
将我的工作站升级到 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)