默认情况下,在 180 天或一定数量的挂载后,大多数 Linux 文件系统会强制执行文件系统检查 (fsck)。当然,这可以关闭,例如,在 ext2 或 ext3 上使用 tune2fs -c 0 -i 0。
在小型文件系统上,这种检查只是一种不便。但是,对于较大的文件系统,此检查可能需要数小时才能完成。当您的用户依赖此文件系统来提高工作效率时,假设它通过 NFS 为他们的主目录提供服务,您会禁用计划的文件系统检查吗?
我问这个问题是因为现在是凌晨 2 点 15 分,我正在等待很长时间的 fsck 完成(ext3)!
这很奇怪,但是在设置 git 存储库并使用以下命令创建 post-receive 挂钩时:
echo "--initializing hook--"
cd ~/websites/testing
echo "--prepare update--"
git pull
echo "--update completed--"
Run Code Online (Sandbox Code Playgroud)
钩子确实运行了,但它永远无法正确运行 git pull :
6bfa32c..71c3d2a master -> master
--initializing hook--
--prepare update--
fatal: Not a git repository: '.'
Failed to find a valid git directory.
--update completed--
Run Code Online (Sandbox Code Playgroud)
所以我现在问自己,如何让钩子用 post-receive 更新克隆?
在这种情况下,运行进程的用户是相同的,它的所有内容都在用户文件夹中,所以我真的不明白......因为如果我手动进入
cd ~/websites/testing
git pull
Run Code Online (Sandbox Code Playgroud)
它工作没有任何问题......
对此的任何帮助将不胜感激
非常感谢
正如在别处看到的,docx、xlsx 和 pttx 是 ZIP。将它们上传到我的 Web 应用程序时,file(通过libmagic和python-magic)将它们检测为 ZIP。
我将文件的内容作为 blob 存储在数据库中,但自然我不想让用户相信这是什么类型的文件。所以我想file在下载过程中信任并自动生成一个文件名。
我知道可以修改,/etc/magic但格式 ( magic(5)) 对我来说太复杂了。我在 Debian bugs 上找到了一个关于这个问题的错误报告,但由于它是 2008 年的,它似乎不会很快得到修复。
我想我唯一的其他选择是确实信任用户(但仍将内容存储为 blob)并仅根据文件名检查文件扩展名。这样我就可以禁止某些扩展并允许其他扩展。当用户重新下载他的文件时,他可以以任何方式上传它。但是,如果文件与他人共享,则此解决方案是不安全的,因为您可以简单地重命名文件以允许上传。
有任何想法吗?
最后,我找到了 docx 等的幻数列表,但我无法将它们转换为magic(5)格式。
foreman 可以读取 .env 文件并从内容中设置环境变量,然后运行程序
例如 foreman run -e vars.env myprogram
...但它做了很多其他的事情(并且主要关注使用它的 Procfile 格式开始的事情)。
有没有更简单的(Linux/Unix)工具,它只专注于读取 .env 文件并在新环境中执行命令?
示例环境文件(来自http://ddollar.github.io/foreman/#ENVIRONMENT):
FOO=bar
BAZ=qux
Run Code Online (Sandbox Code Playgroud) 有没有办法监控特定网络接口上的流量(例如,获得利用率的实时视图),比如 eth0?
这里的问题是盒子上的工具集是固定的,并且几乎是一个库存的 RHEL 部署,所以不能使用附加工具。
在这里寻找一些基本的并且通常存在的东西,比如 iostat。
我试图理解这种 Unix 行为(我碰巧在 Ubuntu 11.10 上测试):
$ touch foo
$ setfacl -m u:nobody:rwx foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx
group::rw-
mask::rwx
other::r--
$ chmod g-rw foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx #effective:--x
group::rw- #effective:---
mask::--x
other::r--
Run Code Online (Sandbox Code Playgroud)
请注意,chmod(1) 命令已更新了 ACL 掩码。为什么会发生这种情况?
在SunOS的联机帮助有以下说:
如果使用 chmod(1) 命令更改具有 ACL 条目的文件的文件组所有者权限,则文件组所有者权限和 ACL 掩码都将更改为新权限。请注意,新的 ACL 掩码权限可能会更改对文件具有 ACL 条目的其他用户和组的有效权限。
我问是因为如果 chmod(1) 没有这种行为对我来说会很方便。我希望通过了解它为什么会这样做,我可以更好地设计我设置文件系统权限的方式。
当我su -进入 root 时,我的当前目录被设置为 root 的家。无论如何要保留我所在的当前目录,就像sudo -s. 或者是使用 sudo 的答案?
我希望有人可以帮助我解决这个奇怪的问题。
我想我知道它为什么会发生,但我不知道如何解决它。也许是因为 BIOS 时间设置不正确或类似的原因。但我不想更改大约 400 多台服务器的 BIOS 时间。(或更换BIOS电池)
root@spool:~# echo TEST > /dev/kmsg
root@spool:~# dmesg -T | tail -1
[Mon Feb 17 04:57:03 2014] TEST
root@spool:~# date
Mon Feb 17 11:45:17 CET 2014
Run Code Online (Sandbox Code Playgroud)
服务器正在运行 ntp 以进行时间同步。
这里有人知道如何在操作系统中解决这个问题吗?
Linux spool 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
为什么在回显到/dev/kmsg时,我的消息的日期/时间dmesg与系统日期/时间不同步?
unix ×10
linux ×8
debian ×2
filesystems ×2
dmesg ×1
git ×1
hook ×1
ip ×1
mime ×1
monitoring ×1
networking ×1
su ×1
sudo ×1
time ×1