我正在检查两个文件夹(和)diff -rq
之间的差异。我不想知道文件夹是否有任何新文件,因为这是预期的。我如何确保这些信息不会出现?A
B
A
对于 NodeJs 应用程序,我编写了以下脚本来部署该应用程序:
"scripts": {
"deploy": "source private/create_env.sh && ./deploy.sh",
}
private/create_env.sh
创建脚本中使用的环境变量deploy.sh
。
export USERNAME=alphonsio
export SERVER=ftp.example.com
export ...
组合&&
器会阻止环境变量在deploy.sh 脚本中可用。
如何使它们在部署脚本中可用?
ls -R $pwd > text.txt
上述命令生成以下txt文件:
engagement
groups
solo
text.txt
./engagement:
VAM01427.JPG
_VJR3208.JPG
_VJR3244.JPG
_VJR3281.JPG
./groups:
family
friends
./groups/family:
_VJR3358.JPG
_VJR3376.JPG
_VJR3379.JPG
./groups/friends:
_VJR3404-2.jpg
_VJR3416.jpg
_VJR3456.JPG
./solo:
VAM01381.JPG
VAM01385.JPG
VAM01386.JPG
基于此文本文件,我尝试使用 mkdir 命令创建文件夹。
当我运行命令时:cat text.txt | xargs -L 1 mkdir
此命令正在生成重复的文件夹
我无法正确地提出问题..有人可以帮忙吗?
我想使用find
命令 with-printf '%h\0'
来打印前导目录,以 nul 字符分隔。由于我使用的是 \0,所以我不需要也不希望 find 引用结果,如 find 联机帮助页的“UNUSUAL FILENAMES”部分所述。
有没有什么方法可以告诉 find “我真的知道我在做什么”,并且在使用该-printf
选项时不进行引用?
我使用 ext4 文件系统很长时间了,这是我第一次看到 ext4 文件系统的奇怪行为。
底层设备中发生 I/O 错误,并且该文件系统被重新挂载为只读,其中存在
ext4 文件系统。这很好,符合配置的预期。但由于某种未知的原因,现在不可能完全卸载文件系统。
命令成功返回。进一步运行该命令会显示“未安装”。
安装条目已从命令输出中消失。文件系统未安装在其他任何地方。
但。
第一:我在 dmesg 中看不到通常的文本。事实上,dmesg 中什么也没有。
/dev/dm-2
umount /the/mount/point
mount
EXT4-fs: unmounting filesystem
第二件事(它本身就说明出了问题):
root# cat /proc/meminfo | grep dirty
Dirty: 9457728 kB
root# time sync
real 0m0.012s
user 0m0.000s
sys 0m0.002s
root# cat /proc/meminfo | grep dirty
Dirty: 9453632 kB
第三件事:调试目录/sys/fs/ext4/dm-2
仍然存在。尝试写入“1”,希望/sys/fs/ext4/dm-2/simulate_fail
它能关闭文件系统。但它什么也没做,在 dmesg 中什么也不显示。
最后,第四件事导致设备无法使用:
root# e2fsck -fy /dev/dm-2
e2fsck 1.46.5 (30-Dec-2021)
/dev/dm-2 is in use.
e2fsck: Cannot continue, aborting.
我知道可以重新启动等。这个问题不是为了解决一些简单的新手问题。我希望有 ext4 文件系统经验的人帮助我了解导致此行为的原因。
该dm-2
设备没有安装在其他任何地方,没有绑定安装,也没有被其他任何东西使用。
在用 进行测量时,没有其他任何东西使用脏缓存cat /proc/meminfo | grep dirty
。
成功的卸载调用不是MNT_DETACH
(未-l
使用标志)。尽管如此,它几乎立即成功了(这很奇怪)。挂载点不再挂载:但正如我上面所描述的,可以很容易地看出文件系统没有卸载。
更新:正如 AB 指出的,我尝试检查文件系统是否仍然安装在不同的命名空间中。我没有将它安装在不同的命名空间中,所以我没想到会看到任何东西。但是,令人惊讶的是,它被安装在不同的命名空间中,令人惊讶的是(用户名已更改):
4026533177 mnt 1 3411291 an-unrelated-nonroot-user xdg-dbus-proxy --args=43
我尝试进入该命名空间并使用它卸载它,nsenter -t 3411291 -m -- umount /the/mount/point
这导致了分段错误(核心转储),这在 dmesg 中
[970130.866738] Buffer I/O error on dev dm-2, logical block 0, lost sync page write
[970130.867925] EXT4-fs error (device dm-2): ext4_mb_release_inode_pa:4846: group 9239, free 2048, pa_free 4
[970130.870291] Buffer I/O error on dev dm-2, logical block 0, lost sync page write
[970130.949466] divide error: 0000 [#1] PREEMPT SMP PTI
[970130.950677] CPU: 49 PID: 4118804 Comm: umount Tainted: P W OE 6.1.68-missmika #1
[970130.953056] Hardware name: OEM X79G/X79G, BIOS 4.6.5 08/02/2022
[970130.953121] RIP: 0010:mb_update_avg_fragment_size+0x35/0x120
[970130.953121] Code: 41 54 53 4c 8b a7 98 03 00 00 41 f6 44 24 7c 80 0f 84 9a 00 00 00 8b 46 14 48 89 f3 85 c0 0f 84 8c 00 00 00 99 b9 ff ff ff ff <f7> 7e 18 0f bd c8 41 89 cd 41 83 ed 01 0f 88 ce 00 00 00 0f b6 47
[970130.957139] RSP: 0018:ffffb909e3123a28 EFLAGS: 00010202
[970130.957139] RAX: 000000000000082a RBX: ffff91140ac554d8 RCX: 00000000ffffffff
[970130.957139] RDX: 0000000000000000 RSI: ffff91140ac554d8 RDI: ffff910ead74f800
[970130.957139] RBP: ffffb909e3123a40 R08: 0000000000000000 R09: 0000000000004800
[970130.957139] R10: ffff910ead74f800 R11: ffff9114b7126000 R12: ffff910eb31d2000
[970130.957139] R13: 0000000000000007 R14: ffffb909e3123b80 R15: ffff911d732beffc
[970130.957139] FS: 00007f6d94ab4800(0000) GS:ffff911d7fcc0000(0000) knlGS:0000000000000000
[970130.957139] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[970130.957139] CR2: 00003d140602f000 CR3: 0000000365690002 CR4: 00000000001706e0
[970130.957139] Call Trace:
[970130.957139] <TASK>
[970130.957139] ? show_regs.cold+0x1a/0x1f
[970130.957139] ? __die_body+0x24/0x70
[970130.957139] ? __die+0x2f/0x3b
[970130.957139] ? die+0x34/0x60
[970130.957139] ? do_trap+0xdf/0x100
[970130.957139] ? do_error_trap+0x73/0xa0
[970130.957139] ? mb_update_avg_fragment_size+0x35/0x120
[970130.957139] ? exc_divide_error+0x3f/0x60
[970130.957139] ? mb_update_avg_fragment_size+0x35/0x120
[970130.957139] ? asm_exc_divide_error+0x1f/0x30
[970130.957139] ? mb_update_avg_fragment_size+0x35/0x120
[970130.957139] ? mb_set_largest_free_order+0x11c/0x130
[970130.957139] mb_free_blocks+0x24d/0x5e0
[970130.957139] ? ext4_validate_block_bitmap.part.0+0x29/0x3e0
[970130.957139] ? __getblk_gfp+0x33/0x3b0
[970130.957139] ext4_mb_release_inode_pa.isra.0+0x12e/0x350
[970130.957139] ext4_discard_preallocations+0x22e/0x490
[970130.957139] ext4_clear_inode+0x31/0xb0
[970130.957139] ext4_evict_inode+0xba/0x750
[970130.989137] evict+0xd0/0x180
[970130.989137] dispose_list+0x39/0x60
[970130.989137] evict_inodes+0x18e/0x1a0
[970130.989137] generic_shutdown_super+0x46/0x1b0
[970130.989137] kill_block_super+0x2b/0x60
[970130.989137] deactivate_locked_super+0x39/0x80
[970130.989137] deactivate_super+0x46/0x50
[970130.989137] cleanup_mnt+0x109/0x170
[970130.989137] __cleanup_mnt+0x16/0x20
[970130.989137] task_work_run+0x65/0xa0
[970130.989137] exit_to_user_mode_prepare+0x152/0x170
[970130.989137] syscall_exit_to_user_mode+0x2a/0x50
[970130.989137] ? __x64_sys_umount+0x1a/0x30
[970130.989137] do_syscall_64+0x6d/0x90
[970130.989137] ? syscall_exit_to_user_mode+0x38/0x50
[970130.989137] ? __x64_sys_newfstatat+0x22/0x30
[970130.989137] ? do_syscall_64+0x6d/0x90
[970130.989137] ? exit_to_user_mode_prepare+0x3d/0x170
[970130.989137] ? syscall_exit_to_user_mode+0x38/0x50
[970130.989137] ? __x64_sys_close+0x16/0x50
[970130.989137] ? do_syscall_64+0x6d/0x90
[970130.989137] ? exc_page_fault+0x8b/0x180
[970130.989137] entry_SYSCALL_64_after_hwframe+0x64/0xce
[970130.989137] RIP: 0033:0x7f6d94925a3b
[970130.989137] Code: fb 43 0f 00 f7 d8 64 89 01 48 83 c8 ff c3 90 f3 0f 1e fa 31 f6 e9 05 00 00 00 0f 1f 44 00 00 f3 0f 1e fa b8 a6 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 05 c3 0f 1f 40 00 48 8b 15 c1 43 0f 00 f7 d8
[970130.989137] RSP: 002b:00007ffdd60f7d08 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6
[970130.989137] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 00007f6d94925a3b
[970130.989137] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000055ca1c6f7d60
[970130.989137] RBP: 000055ca1c6f7b30 R08: 0000000000000000 R09: 00007ffdd60f6a90
[970130.989137] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
[970130.989137] R13: 000055ca1c6f7d60 R14: 000055ca1c6f7c40 R15: 000055ca1c6f7b30
[970130.989137] </TASK>
[970130.989137] Modules linked in: 88x2bu(OE) erofs dm_zero zram ext2 hfs hfsplus xfs kvdo(OE) dm_bufio mikasecfs(OE) simplefsplus(OE) melon(OE) mikatest(OE) iloveaki(OE) tls vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) ip6t_REJECT nf_reject_ipv6 ip6t_rt ipt_REJECT nf_reject_ipv4 xt_recent xt_tcpudp nft_limit xt_limit xt_addrtype xt_pkttype nft_chain_nat xt_MASQUERADE xt_nat nf_nat xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables binfmt_misc nfnetlink nvidia_uvm(POE) nvidia_drm(POE) intel_rapl_msr intel_rapl_common nvidia_modeset(POE) sb_edac nls_iso8859_1 x86_pkg_temp_thermal intel_powerclamp coretemp nvidia(POE) snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_codec_hdmi cfg80211 joydev snd_hda_intel input_leds snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec kvm_intel snd_hda_core snd_hwdep kvm snd_pcm snd_seq_midi rapl snd_seq_midi_event snd_rawmidi intel_cstate serio_raw pcspkr snd_seq video wmi snd_seq_device snd_timer drm_kms_helper fb_sys_fops snd syscopyarea sysfillrect sysimgblt soundcore
[970130.989137] ioatdma dca mac_hid sch_fq_codel dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua msr parport_pc ppdev lp parport drm efi_pstore ip_tables x_tables autofs4 raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx raid1 raid0 multipath linear crct10dif_pclmul hid_generic crc32_pclmul ghash_clmulni_intel sha512_ssse3 sha256_ssse3 sha1_ssse3 usbhid cdc_ether aesni_intel usbnet uas hid crypto_simd r8152 cryptd usb_storage mii psmouse ahci i2c_i801 r8169 lpc_ich libahci i2c_smbus realtek [last unloaded: 88x2bu(OE)]
[970131.024615] ---[ end trace 0000000000000000 ]---
[970131.203209] RIP: 0010:mb_update_avg_fragment_size+0x35/0x120
[970131.204344] Code: 41 54 53 4c 8b a7 98 03 00 00 41 f6 44 24 7c 80 0f 84 9a 00 00 00 8b 46 14 48 89 f3 85 c0 0f 84 8c 00 00 00 99 b9 ff ff ff ff <f7> 7e 18 0f bd c8 41 89 cd 41 83 ed 01 0f 88 ce 00 00 00 0f b6 47
[970131.207841] RSP: 0018:ffffb909e3123a28 EFLAGS: 00010202
[970131.209048] RAX: 000000000000082a RBX: ffff91140ac554d8 RCX: 00000000ffffffff
[970131.210284] RDX: 0000000000000000 RSI: ffff91140ac554d8 RDI: ffff910ead74f800
[970131.211512] RBP: ffffb909e3123a40 R08: 0000000000000000 R09: 0000000000004800
[970131.212749] R10: ffff910ead74f800 R11: ffff9114b7126000 R12: ffff910eb31d2000
[970131.213977] R13: 0000000000000007 R14: ffffb909e3123b80 R15: ffff911d732beffc
[970131.215181] FS: 00007f6d94ab4800(0000) GS:ffff911d7fcc0000(0000) knlGS:0000000000000000
[970131.216370] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[970131.217553] CR2: 00003d140602f000 CR3: 0000000365690002 CR4: 00000000001706e0
[970131.218740] note: umount[4118804] exited with preempt_count 1
机器仍然可以工作,可以同步其他文件系统:
root# sync -f /
root#
但不是全局同步:
root# sync
(goes D state forever)
与该 Ghost 文件系统相关的脏缓存没有消失,文件系统仍然“挂载”
这些问题的原因是什么?
我在家里的一台个人电脑上运行最新版本的ubuntu服务器作为服务器。我上面有两个逻辑卷。vg0
和vg1
。最近,我注意到我/dev/vg0/lv-var
安装的分区/var
太小了。我备份了/var
和中的所有内容/home
,然后继续减少/dev/vg0/lv-home
分区并增加/dev/vg0/lv-var
分区。我使用的命令如下所示:
umount /home
lvreduce --size 325G /dev/vg0/lv-home
lvextend -L +100.22G /dev/vg0/lv-var
xfs_growfs /dev/mapper/vg0-lv--var
一切似乎都奏效了。请注意,我没有umount /var
这样做,因为它被许多基本流程使用。
重新启动后,系统现在启动,emergency mode
我什至无法使用键盘进行故障排除,因为它在处理 USB 连接时遇到问题,并且出现类似于以下内容的错误unable to enumerate USB device
我觉得可能是我重启前没有remount的问题/home
。
尝试在安全模式下安装回家时,我得到:
mount: /home: can't read superblock on /dev/mapper/vg0-lv--home.
当系统启动时我可以看到:
[FAILED] Failed to mount /home. (100.0% complete)
我尝试过xfs_repair
,但我什至无法将卷安装在任何地方,因为我得到can't read superblock on /dev/mapper/vg0-lv--home
我正在考虑删除逻辑卷,创建一个新卷并将其安装到主目录。我有数据备份,但如何做到这一点并让系统知道/home
在启动时安装新创建的数据?
这个命令:
sudo chown -R root:root directory
将删除 SUID 位并重置文件的所有功能。我想知道为什么它是默默完成的,并且在手册页中没有提及。奇怪的是 GUID 位没有被删除。在运行此命令之前文件或目录属于谁并不重要。
此外,目录的SUID/GUID 位也不会被删除(认为它们在这种情况下毫无用处)。
大概这是以安全的名义进行的,但对我来说,这绝不能悄无声息地进行。
这变得更糟:
$ setcap cap_sys_rawio,cap_sys_nice=+ep test
$ getcap -v test
test cap_sys_rawio,cap_sys_nice=ep
$ chown -c -v -R 0:0 .
ownership of './test' retained as root:root
ownership of '.' retained as root:root
$ getcap -v test
test
文件的 SUID 位test
将被完全默默地删除。就好像该命令所做的事情比要求的要多得多。
例如,我有一个具有三个扩展属性的文件:
com.apple.FinderInfo
com.apple.metadata:_kMDItemUserTags
com.apple.metadata:kMDItemFinderComment
我可以使用删除前两个
xattr -d com.apple.FinderInfo file.txt
xattr -d com.apple.metadata:_kMDItemUserTags file.txt
但我宁愿不要xattr
多次调用,而是使用类似这样的东西:
xattr -d \( com.apple.FinderInfo, com.apple.metadata:_kMDItemUserTags \) file.txt
xattr -d com.apple.FinderInfo -d com.apple.metadata:_kMDItemUserTags file.txt
有可能吗?