Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

5
导致I / O错误的特殊文件
如果要读取的基本SQLite DB文件失败(导致I / O错误),我想自动测试某个软件是否响应预期。确实是几天前在客户那里发生的。我们手动修复了它,但是现在我想创建自动代码来修复它,并且需要访问损坏的文件来进行测试。 由于Unix中的所有内容都是一个文件,因此我怀疑可能存在一个特殊文件,当尝试读取该文件时总是会导致I / O错误(例如,在/ dev中)。 一些类似的文件(imo)将是: /dev/full 如果您尝试写入,则始终显示“设备上没有剩余空间” /dev/null 和 /dev/zero 所以我认为只需要有一个这样的文件(但是还没有找到)。 有谁知道这样的文件或任何其他方法可以让我获得所需的结果(故意有问题的分区图像,使用LD_PRELOAD封装open()的包装程序,等等)? 去这里最好的方法是什么?
13 linux  devices  io  testing 

6
更改工作目录
我正在尝试压缩目录 /home/cyrus/sql 我想在压缩文件夹时更改工作目录: / $ zip -b /home/cyrus sql.zip /home/cyrus/sql 但是当我检查压缩文件时: / $ unzip -l sql.zip Archive: sql.zip Length Date Time Name --------- ---------- ----- ---- 0 2013-05-30 10:59 home/cyrus/sql/ 1776642 2013-05-23 10:22 home/cyrus/sql/wordpress.sql --------- ------- 1776642 2 files 根文件夹应该是sql。我做错了什么?
13 zip 

4
如何使用正则表达式进行scp
我正在尝试在ksh中复制所有不以字母“ a”开头的文件。 从源计算机复制到目标计算机工作正常: scp -p !(a*) user@machine:/path/directory/. 但是,如果我在目标服务器上并想从源服务器复制,则失败: scp -p user@machine:/path/!(a*) . 有任何想法吗?
13 ksh  scp 

4
笔记本电脑用户应该从ext4切换到btrfs吗?
与此相关。 我想利用操作系统切换来升级到BTRFS。 BTRFS声称提供了很多功能(数据丢失的弹性,RAID的自我修复,元数据和数据的校验和,压缩,快照)。但是,与fsync密集型程序(例如,dpkg我知道eatmydata和糟糕的apt-btrfs-snapshot程序)一起使用时,速度很慢,而且我不会设置RAID:p。 EXT4仅允许对元数据进行校验和,并且不压缩数据。 在6年中,由于硬盘损坏(飞行后),我不得不重新安装操作系统两次。第一次导致笔记本电脑无法启动,第二次损坏是由于电影损坏,然后是对OS二进制文件的md5sum检查而确定的。(SMART告诉我磁盘是正常的)。目前,这头马虎的行为很奇怪。我不知道应该归咎于硬件还是软件,但是我怀疑硬件(它们都是在飞行后立即开始的)。 您是否会因为数据压缩和校验和而建议改用笔记本电脑的BTRFS,还是应该坚持使用EXT4? (我不在乎哪个变量相对于“最佳”,但我几乎没有使用BTRFS的经验,并希望获得一些反馈) 编辑: 让我们更清楚一点:我知道,BTRFS仍被标记为实验性的,但是SUSE表示现在不再应该这样做了。Oracle也是如此(我知道Oracle是谁)。大量发行版已经建议安装BTRFS,其中大多数计划在未来几个月内切换到BTRFS。 两个事实: 备份损坏的数据毫无价值。我不明白为什么我似乎是唯一一个要打扰的人。那不是常识吗?与此同时: 别告诉我应该备份:我已经备份了。 不要再暗示备份就足以保证我的数据安全,除非您愿意给我TB的可用空间来进行数年的备份。 损坏的文件= / => Linux抱怨。所以: 不要仅仅因为操作系统正在启动就假设您的系统/数据是理智的。 我希望您能理解,我喜欢(元)数据校验和,而不是过度设计和piece肿的软件,因为它不方便执行BTRFS来检查数据完整性。 现在,我不是要问哪个FS更好吗?问题是,考虑到我定期进行备份,BTRFS是否仍处于实验性阶段,无法用于其数据完整性检查功能,还是应该坚持使用EXT4?

2
什么是“自动堆栈扩展”?
getrlimit(2)在手册页中具有以下定义: RLIMIT_AS 进程的虚拟内存的最大大小(地址空间),以字节为单位。此限制影响对brk(2),mmap(2)和mremap(2)的调用,这些调用在超出此限制时会失败,并显示错误ENOMEM。同样,自动堆栈扩展将失败(如果没有通过sigaltstack(2)提供备用堆栈,则会生成SIGSEGV来终止该进程)。由于该值很长,因此在32位长的机器上,此限制最多为2 GiB,或者此资源是无限的。 这里的“自动堆栈扩展”是什么意思?Linux / UNIX环境中的堆栈是否根据需要增长?如果是,确切的机制是什么?
13 linux  process  memory  limit 


5
使用不同的参数重新运行同一命令
我知道我可以运行以下命令 ls Some{File,Folder} 它等效于运行此命令: ls SomeFile SomeFolder (我也经常将它用于mv place_{a,b}) 但是,我想知道是否有其他快捷方式可以执行以下操作: run-command --a --whole --lot --of --flags parameter a; \ run-command --a --whole --lot --of --flags parameter b 而且我只需要打字run-command --a --whole --lot --of --flags parameter {a,b}或类似的东西。

8
为什么终端区分大小写?
当我这样做时- CD ..而不是cd .. 给我错误提示- CD: command not found 为什么涉及linux命令时终端区分大小写?我的意思是您应该能够使用“全部大写”或“全部小写”字符执行命令。 我知道这是由于某种原因,但是我很好奇。

4
在MySQL中关闭--skip-grant-tables
我对使用Linux很陌生,但是正在Amazon ec2实例上设置MySQL数据库。我遵循找到的有关使用--skip-grant-tablesMySQL选项重置用户登录密码的说明。现在,我正在尝试添加一个用户,但不知道如何关闭该选项。 这就是我想要做的: mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON ...my db username and pass 但是我得到这个错误: ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 如何关闭此选项?

2
通过SSH发送功能键(F1-F12)
我有一台可以通过SSH连接到的Fedora机器。我偶尔要使用的程序之一使用功能键。问题是,我是从Android平板电脑(ASUS变压器无限远)带物理键盘的SSH'ing,但没有F1- F12键。因此,在我正在使用的终端应用程序(VX ConnectBot)决定将它们添加为功能之前,我正在寻找一种使用键盘的其余部分发送它们的方法。 我可以使用所有可打印的ASCII字符,Esc,Ctrl,Shift,Enter,和Tab。
13 ssh  terminal  android 

5
需要循环睡眠一秒钟的时间
在我的机器上,我需要执行一个循环,该循环迭代1个简单命令,该命令必须以秒为单位表示延迟。 假设我需要: 保存具有越来越高的enumaration的文件(file-0,file-1,file-2等),例如 time > file-$x 我需要每1/70秒执行一次(例如),因为我想用几分之一秒来表示我的时间。 我怎样才能真正精确地用bash脚本表达一切? 小数可以生成不确定的数量,我需要精确,所以我至少需要4-5个小数。
13 bash  scripting 

2
设置主机名的后果是什么?
我有几台Amazon EC2服务器,并且正在使用Chef来管理配置。我想设置主机名,以便默认bash提示更有用。 现在,启动新服务器后,将其设置为: root@ip-10-123-123-123 因为我在这些盒子上使用Ubuntu 12,所以我在相应的手册页中查询了主机名。关于如何设置它,它有很多很好的信息,并谈到了主机名和fqdn,但它并没有真正告诉我我想知道的内容: 设置主机名的后果是什么? 我想假设设置主机名主要是为用户和sysadmin提供了一个方便的选项,为该框指定了一个face / nice-name,以便可以在内部更轻松地识别它(通过命令提示符,发送的电子邮件,等),但我并不乐观。 我没有在/etc/hosts文件中看到主机名,这似乎是一个好兆头,表明如果更改,它不会对主机产生任何负面影响: 127.0.0.1 localhost # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts 我在正确的轨道上吗?设置主机名的后果是什么? 更新资料 我尝试将ec2实例上的主机名从更改为ip-10-123-123-123,webserver并且hostname --fqdn不再起作用。如果我把它放回去,那就可以了。Apache启动时也给我一个错误,它无法可靠地确定fqdn。我想必须有某种方法可以设置主机名而不弄乱fqdn。

1
无法删除文件-权限被拒绝-为什么?
[db2inst1][testing ~/sqllib/db2dump] rm db2diag.log rm: cannot remove `db2diag.log': Permission denied [db2inst1][testing ~/sqllib/db2dump] id uid=1002(db2inst1) gid=107(db2iadm1) groups=16(dialout),33(video),107(db2iadm1),108(db2fadm1),1001(eduserver) [db2inst1][testing ~/sqllib/db2dump] ll total 1381172 -rw-rw-rw- 1 root db2iadm1 1412931954 Oct 2 10:24 db2diag.log 当前登录的用户(db2inst1)是db2iadm1组的一部分,该组对我要删除的文件具有w权限。但是我不能。知道为什么吗? 更新-父目录的权限 drwxr-sr-x 2根db2iadm1 4096 8月22日14:39 db2dump
13 permissions  files  rm 

2
从列表中交互式删除文件
我想删除文件列表并要求确认。列表在list.txt文件中。为什么以下命令无法正常工作? while read i; do rm -i $i; done < list.txt 前面的命令不会等我,但是幸运的是没有文件被删除。 我正在使用Bash。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.