在迁移文件系统,脚本和文件时可能遇到的障碍是什么? sh和ksh脚本需要做什么修改?
我想知道从最终用户的angular度来看,solaris和linux之间有什么区别?
我多年来经历的一些事情:
现在红帽提供的ksh是相当不错的。 pdksh是/不太好。 ksh有打印语句bash不。
如果你有打印要求,那么lp / lpr / cups需要彻底检查。
Solaris grep / awk命令可能是一个问题。
即使你决定使用ksh,红帽提供的bash也有一个很好的已知function标志–rpm – 要求你可以用来分析一个脚本:
$ bash --rpm-requires conman executable(/etc/rc.d/init.d/functions) executable(/etc/sysconfig/network) executable(/etc/sysconfig/conman) executable(echo_failure) executable(echo_failure) executable(daemon) executable(touch) executable(echo_failure) executable(killproc) executable(rm) executable(status) executable(killproc)
所以现在我们知道这个脚本需要执行什么命令。 如果你对你的脚本目录运行它,你可以快速计算出有多less个正在使用awk / sed等
确保您检查了solaris中的任何ulimit设置。检查solaris / etc / system文件中的信号量/共享内存设置,并检查可以在linux sysctl中进行的相应设置。
/ var / adm(Solaris)和/ var / log(Linux)
字节顺序 – 如果你正在系统之间迁移数据/二进制文件,那么你需要确保已经处理了任何的endian转换,Sparc是big-endian,英特尔little-endian。
我们目前正在做同样的事情。 我们发现的问题:
sudo ,这有其优点和缺点。 我非常喜欢Solaris,我可以将某些权限委托给非root用户,例如控制特定的SMF服务。 init服务,而不需要像monit这样的额外产品。 ps -ef vs ps aux 。 (在这种情况下,我通常会发现后者更有用,但是我们有许多脚本是用硬编码来使用Solaris风格的。) bonding似乎不像IP多path(IPMP)那样灵活。 ifconfig e1000g0 group test非常简单! multipathd不好; 其实它似乎只是工作,但我不是它的configuration格式的粉丝:-) 大多数情况下,你的shell脚本在Linux上应该可以正常工作。 像bash和dash (通常在Linux系统上以/bin/sh )通常使用sh模拟(当调用/bin/sh 。
除了缺less一些“企业级”function(例如良好的安全控制)之外,Linux迁移应该相当简单。 如果您要迁移数据库或其他二进制数据格式,请小心端到端差异(SPARC是big-endian,x86是little-endian)。
Solaris 10和更早的版本(我不知道大约11)也有一个不同版本的cron,其行为可能与Linux版本不同。 */5快捷方式不起作用,其他快捷方式(如@daily)可能无法正常工作。 这些不应该导致从Solaris到Linux的问题,但可能会导致另一种方式。
我依稀记得Solaris上周一开始的星期几,但是在Google的search中找不到任何提及。
显然,任何完整的文件path都需要检查,因为Solaris在/opt和/usr/ucb中放置了很多工具,Linux放入/usr
守护程序的用户名和UID可能会导致问题,如果您的脚本中有任何这些问题,您可能需要更改某些文件的所有权。 仅仅因为它们是由Solaris上的www-data所拥有的,并不意味着它们在将它们转移到Linux之后仍然会被使用,并且根据您的发行版和发行版,它可能需要是httpd或apache 。