1 2 3 Previous Next 63 Replies Latest reply on Apr 16, 2019 7:30 AM by Prasanna Ramachandra

    TabCmd on Linux

    Damien Lesage



      I have seen there was major changes to the TabCmd. before we could use the tabcmd.jar file to have it run on Linux. This doesn't seem possible now.


      Is there a way to get it to work under Linux now? This is kind of a deal breaker for us.


      Alternatively, we need this TabCmd mostly for deleting users from the server and appending TDE file to existing TDE.

      Is there a way to do this with the REST API? I haven't seen what I am looking for in the documentation.

        • 1. Re: TabCmd on Linux
          Michael Perillo

          damienlesage,  Thanks for posting this. Our group is doing this as well and need to address this if it's not supported. I wasn't aware and will need to confirm with more info.


          I'm pretty sure the point is to start using the REST API.  With that in mind probably being the case we're already looking at making changes to move down this road anyway.  Pushes our timeline up a bit though.


          Is there an API function to refreshextracts not currently listed in the documentation.  We have created many tabcmd 'refreshextracts' scripts currently running on unix. Moving the strategy to Windows for particular groups is not highly desired.  Any advice/updates?

          • 2. Re: TabCmd on Linux
            Damien Lesage

            Yes we want to move to the API as much as possible. Unfortunately, the REST API doesn't allow us to append a TDE file to a published TDE.

            We can do that with TabCmd and this is a feature we are using on production.


            It looks like a deal breaker until we find a good alternative. Are you having a similar issue?

            • 3. Re: TabCmd on Linux
              Michael Perillo

              Damien - It seems that we're having very similar issues. This might be a deal breaker for us as well. Can anyone from Tableau comment on this or provide some alternative solutions that we're not seeing?  **Aside from moving things over to Windows using the tabcmd.

              • 5. Re: TabCmd on Linux
                Damien Lesage

                Hi Alex,


                This allows us to publish a TDE to replace the old one, but not to append to an existing TDE.


                We have several extracts that are big and we prefer to add only the new data during the workings days because this would take too much time to upload the entire file.


                This part of the solution though and we are starting to test it at the moment.

                • 6. Re: TabCmd on Linux
                  Jeff Solomon

                  Hi Damien and Michael,


                  We rewrote tabcmd in java for 9.0 for a lot of reasons (we hope you like them), but we definitely *didn't* rewrite tabcmd in 9.0 to break Linux compatibility!


                  The old tabcmd was just a bunch of ruby files that could then be run directly using ruby on a Linux system. This was a nice trick that worked great and we're glad folks did this.


                  Now that tabcmd is 100% java, it requires a real Linux java launching program which fortunately would be pretty simple to write but unfortunately doesn't exist yet. I want to assure both of you that tabcmd remains and always will be cross platform in nature. We definitely didn't do anything to tie it to Windows.


                  It is true that you can use the REST API to do many of the things that tabcmd can do and I encourage you to use it when you can.


                  We will work out to "support" Linux tabcmd, but I'm not sure what that will look like right now. Stay tuned.



                  4 of 4 people found this helpful
                  • 7. Re: TabCmd on Linux
                    Damien Lesage

                    Thanks Jeff.


                    Can we expect that for Tableau 9.0 or will it be in a next release?

                    • 8. Re: TabCmd on Linux
                      Tamas Foldi

                      Let me get it work on Linux and update you

                      • 9. Re: TabCmd on Linux
                        Jeff Solomon

                        Hi All,



                        Running on Linux is actually pretty simple. The hardest part is that you do need to be able to run either the server installer or the tabcmd installer to get the tabcmd jars. But after you do that, here are the instructions:



                        1) Create a local copy of C:\Program Files\Tableau\Tableau Server\9.0\extras\lib  to $HOME/lib.


                        2) Create  a ~/.tabcmd directory. This is used for logs, session storage and file uploads.


                        3) Create the following bash script:



                        java -Xmx64m -Xss2048k -Djsse.enableSNIExtension=false -Dpid=$$ -Dlog.file=$HOME/.tabcmd/tabcmd.log -Dsession.file=$HOME/.tabcmd/tabcmd-session.xml -Din.progress.dir=$HOME/.tabcmd -Dconsole.codepage=$LANG -Dconsole.cols=$COLUMNS -cp "$HOME/lib/*" com.tableausoftware.tabcmd.Tabcmd "$@"





                        This assumes that the JRE is correctly installed and available in the path, and that bash is available. This should work with non-ascii UTF-8 characters in the command line arguments assuming that your terminal supports them, but this isn't well tested (at all really), so please post your experiences.



                        We will try to package this up so that it's more turnkey, but we have no idea when that will be released or what it will look like. But this these instructions should do for now.



                        Please let us know how it goes!




                        1 of 1 people found this helpful
                        • 10. Re: TabCmd on Linux
                          Tamas Foldi

                          Hello Jeff, thanks for the quick response, it works well on linux


                          [tfoldi@pwnlq0787v01 tabcmd]$ uname -a

                          Linux pwnlq0787v01 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

                          [tfoldi@pwnlq0787v01 tabcmd]$ ./tabcmd.sh

                          Tableau Server Command Line Utility -- 9000.15.0304.1722



                          I tried first with java -jar, but the app-tabcmd-latest-jar.jar misses the Main-Class definition.

                          • 11. Re: TabCmd on Linux
                            Robin Cottiss

                            tabcmd on Raspberry Pi 2. Followed Jeff's instructions :


                            • 12. Re: TabCmd on Linux
                              Richard Thorne

                              Works great on Centos 6.5. Thank you for putting this out. 


                              As a side note I did notice that when I installed tabcmd with the tabcmd installer the "lib" directory we need to copy over can be found at  "~\Tableau\Tableau Server\9.0\lib"  and not at "~\Tableau\Tableau Server\9.0\extras\lib".   I am sure most folks will figure that out quickly but for those who didn't like me this may save a few minutes.  Thanks again Jeff.

                              • 13. Re: TabCmd on Linux
                                Blair Boadway

                                I found this worked nicely on Mac and linux, except for the --password-file option for some reason. 


                                ./tabcmd.sh login -s https://myserver -t mysite --username myuser --password-file tmpfile

                                ===== Signed out

                                ===== Creating new session

                                =====     Server:   https://myserver

                                =====     Username: myuser

                                =====     Site:     mysite

                                ===== Connecting to the server...

                                ===== Signing in...


                                Exception in thread "main" com.tableausoftware.tabcmd.ResponseException

                                  at com.tableausoftware.tabcmd.session.Session.execute(Session.java:395)

                                  at com.tableausoftware.tabcmd.session.Session.authenticate(Session.java:582)

                                  at com.tableausoftware.tabcmd.session.Session.login(Session.java:554)

                                  at com.tableausoftware.tabcmd.commands.Login.execute(Login.java:57)

                                  at com.tableausoftware.tabcmd.Tabcmd.run(Tabcmd.java:125)

                                  at com.tableausoftware.tabcmd.Tabcmd.main(Tabcmd.java:54)

                                • 14. Re: TabCmd on Linux
                                  Jeff Solomon

                                  Hi Blair,


                                  I'm sorry for that issue! I can repro so we'll fix it. If you want a workaround, make sure your password file has no EOL characters (\n or \r\n) in it. Most text editors will automatically add those to your file, so you'll have to get creative to remove them, but then the --password-file option will work. Again, we'll fix this issue pronto so you don't have to do that in the future.



                                  1 2 3 Previous Next