Articles of shell

这个gpg警告是什么意思?

当我运行我的备份脚本时,它工作正常。 当我作为根运行它,它仍然工作,但我得到这个警告: gpg: WARNING: unsafe ownership on configuration file `/home/jason/.gnupg/gpg.conf' 这个警告是什么意思,我怎样才能阻止它发生? 这是我的脚本: now=$(date +"%Y-%m-%d-%H-%M-%S") logfile="/var/log/backups/rsync-$now" readynas_address="192.168.140.31" basedir="/home/jason/scripts/backup" cat $basedir/email.txt | sendmail -t /home/jason/scripts/db-backup sudo rsync -arvz –delete –exclude-from=$basedir/exclude.txt –password-file=$basedir/password.txt / jason@$readynas_address::gob > $logfile cat $basedir/done-email.txt $logfile | sendmail -t

PowerShell:新的PSDriveerror handling

我有一个脚本,我用“New-PSDrive”命令装入一个networking驱动器。 现在,由于脚本是作为一个“cronjob”在服务器上运行,我想有一些错误检测。 如果由于任何原因New-PSDrive命令失败,脚本应该停止执行,并通知出现问题。 我有以下代码: Try { New-PSDrive -Name A -PSProvider FileSystem -Root \\server\share } Catch { … handle error case … } … other code … 出于testing的原因,我指定了一个错误的服务器名称,我得到以下错误“新PSDrive:驱动器根”\错误服务器\共享“不存在或它不是一个文件夹”。 这是因为服务器不存在。 但脚本不会进入Catch子句并停止。 它愉快地继续运行,因为没有安装驱动器,结果一团糟:-) 所以我的问题,为什么? PowerShell中的exception处理有什么区别吗? 我也应该注意到,我是PowerShell脚本的一个noob。 再见,马丁

更改默认的shell

有时我用自己的能力来打动自己:我用chsh命令改变了root的默认shell,问题是我忘了放在完整path中。 现在我无法以root身份login。 有没有一个文件可以编辑来改变根目录的默认shell?

get-acl语法问题

有人可以向我解释一些事吗? 如果我运行命令(get-acl .\test.txt) | Select-Object owner (get-acl .\test.txt) | Select-Object owner ,我明白了 Owner —– BUILTIN\Administrators 这正是我所期待的。 但是,如果我运行命令(get-acl .\test.txt) | Select-Object Access (get-acl .\test.txt) | Select-Object Access ,我得到这个: Access —– {System.Security.AccessControl.FileSystemAccessRule,System.Security.AccessControl.FileSystemAccessRule, System.Security.AccessControl.FileSystemAccessRule} 而不是在该文件上拥有权限的用户/组的列表以及这些权限是什么。 那么我做错了什么?

成功mysqldump后发送电子邮件

我有一个脚本,将通过mysqldump采取MySQL数据库的备份。 如果转储成功或失败,我想在此脚本中添加另一个选项以发送自动电子邮件。 这是脚本: #!/bin/sh BACKUP=/data/backup/sql2/new_backup/daily cd $BACKUP mkdir `date '+%d-%m-%Y'` NOW=$(date +"%d-%m-%Y") MUSER="root" MPASS="mypass" MHOST="sql4" MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" GZIP="$(which gzip)" DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')" for db in $DBS do FILE=$BACKUP/$NOW/mysql-$db.$NOW-$(date +"%T").sql.gz $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS –lock-all-tables $db | $GZIP -9 > $FILE done 我怎样才能做到这一点?

发现数据集之间的差异

有两个名字列表的文件,每行一个名字。 我需要find第二个列表中的名字不在第一个。 有没有一些聪明的方法来使用shell而不是“真正的”编程语言? PS我用Ruby做了比较,但仍然好奇。

使用PowerShell进行访问的testingpath检查

我试图找出谁在我的networking上安装了Access。 我有几个问题让列表正常工作,所以我使用了输出txt文件。 无论如何,即使这不是一个很好的方法来做到这一点,它仍然应该工作。 谁能告诉我为什么这不起作用? $Computers = Get-QADComputer | select name | Out-File "c:\access_search.txt" $Computers = Get-Content "c:\access_search.txt" $Path = "\c$\Program Files\Microsoft Office\Office12\Access.pip" $AccessPath = "\\" + $PCName + $Path Foreach ($PCname in $Computers){ $Result = Test-Path $AccessPath if ($Result -eq "True") {$Pcname} }

使用rsync同步2个系统中的目录

我正在使用rsync来复制两个系统之间的差异。 我想以这样一种方式来使用它,它基于时间戳“同步”两个系统。 我的意思是说如果假设我做主机A到主机B的rsync。而有人修改该文件,即在主机B发送。在主机A也可能会发生一些变化。 现在如果我从主机A到主机B的rsync我希望有一个同步,使文件传输到主机A由主机B创build的差异,也应该得到转移到主机B的差异。 有什么命令吗? 可能吗? 请回复,谢谢你Sindhu

如何在shell中的string内inputstar *

我怎样才能包括*在一个string? 这是我的代码: #!/bin/bash # This is a simple calculator using select statement echo -n 'Insert 1st operand: ' read first echo -n 'Insert 2nd operand: ' read second echo 'Select an operator:' operators="+ – * /" select op in $operators do let "result=${first}${op}${second}" break done echo -e "Result = $result" 当我运行这个代码时, *会将当前目录中的所有文件列为select选项。 我试图用\*来逃避它,但它不起作用。

是否有可能通过winexe从linux传递一个shellvariables到Windows?

我想通过winexe将名为$ test的shellvariables传递给linux。 例如: winexe -W WORKGROUP -U user%password //192.160.13.13'cmd.exe / C move D:\ restore_db \ $ test D:\ Restore \' 有没有办法做到这一点?