我正在使用JCIFS来访问一个包含很多日文名称的文件共享,当我在其中的字符时遇到问题
例如:
路径人事部/要员·コスト管理课程/
第一部分没问题,但第二部分引起了问题.这可能与"·"可以使用斜线输入的事实有关,但我不确定.我试过逃避角色,但似乎没有解决问题.你有什么可能导致它的线索吗?
当我在Windows上使用git over samba share时,当我想通过git_extentions或tortoiseGIT提交文件时,我会收到错误.错误是: 错误:无法写入sha1文件名.git/objects/b4/e819f886bf31b67c42249a0eff8e8b16cf7622:权限被拒绝.当我通过ubuntu服务器添加文件并提交文件时,它工作正常.我也在班里工作.
我已经尝试过了chmod 777 the whole .git folder.
我在ubuntu服务器上通过CIFS安装了Windows共享.我需要知道何时将新文件添加到Windows共享中.我试过这个inotify程序:
http://www.thegeekstuff.com/2010/04/inotify-c-program-example/
哪个适用于标准目录,但无法捕获任何CIFS更改.我不一定需要使用inotify,虽然我想,但任何有关如何完成获取文件创建通知的建议都会很棒.
我只是测试JCIFS来访问Windows共享.完全无法使用它是非常缓慢的.
import jcifs.smb.*;
class First {
public static void main(String[] args) throws Exception {
try {
//jcifs.Config.setProperty( "jcifs.netbios.wins", "192.168.1.220" );
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain.com", "Administrator", "password");
SmbFile f = new SmbFile("smb://10.17.15.12/Share/xml/file.xml", auth);
SmbFileInputStream in = new SmbFileInputStream(f);
byte[] b = new byte[8192];
int n;
while(( n = in.read( b )) > 0 ) {
System.out.write( b, 0, n );
}
} catch (SmbException smbe) {
System.err.println(smbe.getNtStatus());
System.err.println(smbe.toString());
System.err.println(smbe.getCause());
}
}
}
Run Code Online (Sandbox Code Playgroud)
初始输出需要很长时间,后续读取也很慢.任何想法如何使用它?我也可以使用任何替代方法编写Java代码以便携式方式访问Windows共享
我碰到了以下问题:我正在编写一个Linux bash脚本,它执行以下操作:
\n从刚刚读取的行末尾删除字符示例:commands.txt
ls
ls -l
ls -ltra
ps as
Run Code Online (Sandbox Code Playgroud)
bash文件的执行应该得到第一行,然后执行它,但是\n现在,shell只输出"command not found:ls"脚本的那部分看起来像这样
read line
if [ -n "$line" ]; then #if not empty line
#myline=`echo -n $line | tr -d '\n'`
#myline=`echo -e $line | sed ':start /^.*$/N;s/\n//g; t start'`
myline=`echo -n $line | tr -d "\n"`
$myline #execute it
cat $fname | tail -n+2 > $fname.txt
mv $fname.txt $fname
fi
Run Code Online (Sandbox Code Playgroud)
评论说你在问SO之前我已经尝试过了.有解决方案吗 在过去的几个小时里,我正在粉碎我的大脑......
我正在尝试编写一个bash脚本,我在其中连接到samba服务器,获取用户名和密码,然后说$ username:$ password @ SERVERNAME.
但是,如果密码中包含@,则会失败.有没有办法逃脱bash中的@ out密码?
提前致谢
更新:我正在设置此网络打印机
lpadmin -p PRINTER -v smb://$username:$password@SERVER -E
Run Code Online (Sandbox Code Playgroud)
除了$ password中有@符号的情况外,它有效; $ username和$ passwords变量来自读取标准输入
我在远程服务器上运行git存储库.我在远程服务器上设置了一个samba共享,这样我就可以将代码保存在我的本地Windows 7机器上.我们正在尝试使用git,因为svn非常缓慢且不可靠.我们使用git的问题是,对samba共享执行任何提交/克隆/拉动都会超级慢.如果我在我的Windows 7机器上提交/克隆/拉到本地目录上它工作得很好,但我们需要代码在远程服务器上.有任何想法吗?我真的可以用它.
编辑:
我还应该提一下,我已经运行了git gc --aggressive并且它还没有加速.
我有一个软件归档解决方案,它需要客户端的Windows共享,但我想在Linux主机上通过samba实际存储文件.
这种依赖性要求我有一个Windows前端到我的Linux文件存档.
当我将客户端上的Linux Samba共享映射为驱动器时,我无法"共享"它以供服务器查看.
我也试过制作快捷方式,但没有共享选项
有没有办法创建一个可以共享的Windows文件夹,并且能够将文件写入Samba网络共享?
我在ubuntu中使用samba创建了一个共享文件夹,以便Windows机器可以使用以下命令访问它:
$ sudo net usershare add documents /home/developer/documents "Developer documents" everyone:F guest_ok=y
Run Code Online (Sandbox Code Playgroud)
我给该文件夹777权限:
$ sudo chmod 0777 /home/developer/documents
Run Code Online (Sandbox Code Playgroud)
然后我检查一下我做了什么
$ sudo net usershare info --long
Run Code Online (Sandbox Code Playgroud)
当我想查看所有Windows机器上是否可以看到该文件夹时,您可以看到.但是,您无法访问该文件夹并出现以下错误:"权限被拒绝"
以下消息/var/log/samba/log.ip-domain是:
process_usershare_file: stat of /var/lib/samba/usershares/backuparsac failed. Permission denied
Run Code Online (Sandbox Code Playgroud)
然后,我尝试为我添加一些规则 smb.conf
[documents]
comment = Documents for Developers
path = /home/developer/documents
browseable = yes
writable = yes
read only = yes
guest ok = yes
directory mask = 0777
Run Code Online (Sandbox Code Playgroud)
但是Permission denied的错误不断出现.还有什么我需要做的吗?我需要这个文件夹可以被所有Windows机器访问.
注意:我使用Ubuntu 14.04
我在使用Kerberos身份验证时遇到一些问题,无法使用JCifs执行文件管理(Kerberos扩展版本1.3.17)
这是我目前的krb5.conf配置:
[libdefaults]
default_realm = <REALM_NAME_UPPERCASE>
udp_preference_limit = 1
[realms]
<REALM_NAME_UPPERCASE> = {
kdc = <DOMAIN_NAME_UPPERCASE>:88
admin_server = <DOMAIN_NAME_UPPERCASE>
default_domain = <DOMAIN_NAME_UPPERCASE>
}
[domain_realm]
.<domain_name> = <REALM_NAME_UPPERCASE>
<domain_name> = <REALM_NAME_UPPERCASE>
[appdefaults]
kinit = {
renewable = true
forwardable = true
}
Run Code Online (Sandbox Code Playgroud)
这是代码验证用户,然后尝试在网络中的文件服务器上查找文件:
public static void main (String[] args) throws Exception {
Subject subject = new Subject();
System.setProperty("java.security.krb5.conf", "C:/krb5.conf");
System.setProperty("sun.security.krb5.debug", "true");
Map<String, Object> state = new HashMap<String, Object>();
state.put("javax.security.auth.login.name", "USERNAME");
state.put("javax.security.auth.login.password", "PASSWORD".toCharArray());
Map<String, Object> options = new HashMap<String, Object>();
options.put("debug", "true"); …Run Code Online (Sandbox Code Playgroud)